从1-100 随机取十个不重复的数,等概率,咋取速度最快啊!

五杀联盟 发布于 2015/08/12 12:40
阅读 452
收藏 0
从1-100 随机取十个不重复的数,等概率,咋取速度最快啊!
加载中
0
沙鹰
沙鹰
把 100个数放到list中。。然后从中随机取,取到的值remove掉。
LONH
LONH
但是。这样造成的就不是等概率啊。我觉得选取两个链表,然后,先进行十次选取,然后检验,重复的踢出在进行随机。直到检验没有重复的。但是这样效率会降低,所以就需要另外一个列表将重复的写入这个“黑名单即可”,请看看我的方法如何?
五杀联盟
五杀联盟
就是用链表咯
0
LucEsape
LucEsape
100取10 效率能差到呢?
0
ulfl
ulfl
随机取一个,然后每个加1,第一个是随风,其他9个也是随机的。。
ulfl
ulfl
@LONH 主要看你取随机数是做什么用的,这种方法就是随机数不是随机分布的
LONH
LONH
你牛,别人这样做,就是要随机数的,向您这样的话,我觉得不太好。
0
LONH
LONH
依我看,这是不断优化的过程。但是总是有一点的,执行效率和所需内存空间可能很难平衡,只有大量的测试修改才行把。
0
百世经纶之傲笑红尘
百世经纶之傲笑红尘
100取10能有多慢???除非高并发占用
百世经纶之傲笑红尘
百世经纶之傲笑红尘
什么手表,Android还是苹果系的
LONH
LONH
用手表处理器试试看,卡死了。
0
有名者赫赫
有名者赫赫
a存储0-100的数字

for(int i=0;i<10;i++){

//下面代码交换i和i---a.length-1之间任意一个数的值

int index=(int) Math.floor(Math.random()*(a.length-i)+i);
//交换2数的位置
int temp=a[i];
a[i]=a[index];
a[index]=temp;

}
//得到0-9不重复的随机数



五杀联盟
五杀联盟
好想法
返回顶部
顶部