从一个长度为n的数组中随机选择m个数
来源:互联网 发布:算法第四版答案pdf 编辑:程序博客网 时间:2024/04/29 05:33
基本思想:
首先在下标0---n之间随机生成一个下标,将这个下标对应的数和数组的第一个数交换位置;然后从小标1----n之间随机生成一个数,将下标对应的
数和数组的第二个数交换位置。依次这样下去,知道找出m个数。
public class RandomM {public static void main(String[] args) {// TODO Auto-generated method stubint[] arr=new int[10];for(int i=0;i<10;i++){arr[i]=i;}for(int n: selectM(arr, 5)){System.out.println(n);}}//从长度为n的数组中随机的选择m个整数public static int[] selectM(int[] arr,int m){int len=arr.length;if(m>arr.length)throw new RuntimeException("xxxxx");int[] res=new int[m];for(int i=0;i<m;i++){int randomIndex=len-1-new Random().nextInt(len-i);res[i]=arr[randomIndex];int tmp=arr[randomIndex];arr[randomIndex]=arr[i];arr[i]=tmp;}return res;}}
0 0
- 从一个长度为n的数组中随机选择m个数
- 【转载】从长度为n的数组中选择m个数的所有结果
- 从长度为n的数组中(元素互不相同)任意选择m个数的所有组合
- 从n个数中选择随机选择m个, m个数互不重复
- 从1-n中选择m个数的组合个数
- 从m个数中选择n个数的实现
- 从数据流中随机选择m个数的算法
- 从长度为N的数组中找出所有M个元素组合的优化算法
- 从长度为M的无序数组中找出N个最大的数
- 从M个数中选择前N大的数
- 得到一个m长度都为n的数组
- 在0~N(不包括N)范围内随机生成一个长度为M(M <= N)且内容不重复的数组
- 从大小为n的数组中取出m个数的组合
- 数组中随机选择n个数
- 从n个数中选择m个数,使其和为s
- 从M个数中随机选出N个数的所有组合,无序,(一)
- 从M个数中随机选出N个数的所有组合,有序,(二)
- 想一想如何从M个数中随机等可能的取出N个数
- php获取微信用户的openid
- 4.26
- NSDate的使用
- Java程序员 的技术方向
- 数据库学习笔记系列(8)——嵌套查询
- 从一个长度为n的数组中随机选择m个数
- 关于setContentView
- C++ 中的sprintf函数
- css基础学习笔记(二)
- 三层登录——实体作为参数
- Html5结合flash在所有主流播放器播放视频的方法
- 志向做数据分析师的职业规划
- 论如何写出优雅的Android代码--------BaseActivity
- Android学习博客列表(针对全面源码,framwork,应用)(1)