关于随机数的问题
c4droid吧
全部回复
仅看楼主
level 11
贴吧用户_7WM9S2a
楼主
如果在一个循环中用到了一个随机数,怎么让它一次循环中取到了一个值后,后面循环就取不到这个值,即概率降为0?有什么简单的方法呢?
2017年11月20日 23点11分
1
level 11
贴吧用户_7WM9S2a
楼主
如果限定它只能取到2次呢?
2017年11月20日 23点11分
2
level 9
飞舞云尖
当然是检查这个值,如果还是上次的值,舍弃。
2017年11月20日 23点11分
3
贴吧用户_7WM9S2a
循环里怎么检查?
2017年11月20日 23点11分
level 9
飞舞云尖
比如说用数组保存已出现的数,每出一个新数对比数组中所有数。
2017年11月21日 00点11分
4
level 9
飞舞云尖
或者先给一个有序数组,用洗牌法,随机在里面抽两个数交换,只要交换数量够,保证洗出随机序列。
2017年11月21日 00点11分
5
飞舞云尖
或者重头到尾按顺序和一个随机位置交换。
2017年11月21日 00点11分
贴吧用户_7WM9S2a
@飞舞云尖
关键是这次循环并不知道前几次循环取的值,每次循环取的值都是未知的。
2017年11月21日 01点11分
飞舞云尖
回复 可乐可乐🌿 :说过了,把所有取过的值保存下来。
2017年11月21日 04点11分
level 1
yhzswwh
设置一个变量Z初始为0。判断当Z=0的时候,取随机数,取了随机数后,这个变量Z++。
2017年11月22日 04点11分
9
贴吧用户_7WM9S2a
当Z不等于0时,不就不取随机数了?
2017年11月22日 07点11分
yhzswwh
回复 可乐可乐🌿 :好吧,我理解错了。你要的是随机值不会重复是吧,那就用个数列记录已有的随机值,每次随机就对比,重复了就再随机对比。
2017年11月22日 07点11分
1