|
主题: mmommo 来看!:)
|
 dearsammi
职务:普通成员
等级:1
金币:0.0
发贴:103
|
#12002/8/27 18:22:37
我的理解对吗?大家看看!谢谢
for (i=0; i//判断该数在数组中是否存在 if (random_num[i] == random_num[k-1]) { //如果该数在数组中已存在,就再多算一次 k--; break; } } 应该是不会被执行的!完全可以去掉!是那样的吗? 我去掉后结果完全一样!
function randomNumbers(max_num, count) { k = 0; //避免数目大于最大取值范围 if(count>max_num){ count=max_num } random_num = new Array(); while (k//取得随机整数。 random_num[k] = Math.floor(Math.random()*max_num); k++; for (i=0; i//判断该数在数组中是否存在 if (random_num[i] == random_num[k-1]) { //如果该数在数组中已存在,就再多算一次 k--; break; } } } return random_num; }
|
 5D荣誉版主
职务:普通成员
等级:2
金币:1.0
发贴:515
|
#22002/8/27 20:17:57
请注意,要取得的是不重复随机数,如果你觉得重复无所谓,当然去掉完全一样了。
|
 dearsammi
职务:普通成员
等级:1
金币:0.0
发贴:103
|
#32002/8/27 23:09:54
我觉得 那一段代码是永远不会被执行的! 是多余的!
是那样的吗?
它一次都不会被执行!对吗
|
 5D荣誉版主
职务:普通成员
等级:2
金币:1.0
发贴:515
|
#42002/8/28 2:07:44
试着多取一些随机数,用trace语句看看结果。总有重复的随机数。 ;) 再次说明:那段语句是保证其不重复性用的。
|
 darkvn
职务:普通成员
等级:1
金币:1.0
发贴:222
|
#52002/8/28 10:23:24
产生不重复随机数数组的原代码在哪里?
|
 dearsammi
职务:普通成员
等级:1
金币:0.0
发贴:103
|
#62002/8/28 11:44:19
我的意思是它不会被执行!是多余的!
你理解我意思吗?
如果他被执行,是什么时候被执行呢?
SAMMI
|
 5D荣誉版主
职务:普通成员
等级:2
金币:1.0
发贴:515
|
#72002/8/28 12:05:19
代码: ------------------------------------------------------------------------------ function randomNumbers(max_num, count) { k = 0; //避免数目大于最大取值范围 if (count>max_num) { count = max_num; } random_num = new Array(); while (k //取得随机整数。 random_num[k] = Math.floor(Math.random()*max_num); k++; for (i=0; i //判断该数在数组中是否存在 if (random_num[i] == random_num[k-1]) { trace("重复,再执行!"); //如果该数在数组中已存在,就再多算一次 k--; break; } } } return random_num; } a = randomNumbers(10, 9); trace(a); ------------------------------------------------------------------------------------------------ 请看trace结果:
重复,再执行! 重复,再执行! 重复,再执行! 重复,再执行! 重复,再执行! 重复,再执行! 重复,再执行! 重复,再执行! 重复,再执行! 重复,再执行! 重复,再执行! 重复,再执行! 重复,再执行! 重复,再执行! 重复,再执行! 重复,再执行! 6,7,3,4,2,8,9,1,0
--------------------------------------------- 一共执行了16次! ^_^
|
 5D荣誉版主
职务:普通成员
等级:2
金币:1.0
发贴:515
|
|
 darkvn
职务:普通成员
等级:1
金币:1.0
发贴:222
|
#92002/8/28 18:08:10
我偏向第二种方法。 因为我认为第一种方法,存在不可测因素。 如果每次random出来的都是已经有的那程序岂不没的完了? 虽然机会很小,但这个几率是存在的。晕~~~~
|
 dearsammi
职务:普通成员
等级:1
金币:0.0
发贴:103
|
#102002/8/28 19:58:33
for (i=0; iFOR里面的AS永远不会被执行的:(
是那样的吗
|
 dearsammi
职务:普通成员
等级:1
金币:0.0
发贴:103
|
#112002/8/28 19:58:38
for (i=0; iFOR里面的AS永远不会被执行的:(
是那样的吗
|
 5D荣誉版主
职务:普通成员
等级:2
金币:1.0
发贴:515
|
#122002/8/28 20:46:58
darkvn在上个帖子中说 引用: 我偏向第二种方法。 因为我认为第一种方法,存在不可测因素。 如果每次random出来的都是已经有的那程序岂不没的完了? 虽然机会很小,但这个几率是存在的。晕~~~~ :D
第一种方法在取少量随机数的时候效果好啊。只要取值的数目和最大值有一定的差距,效率还是不错的。
|