|
主题: random问题
|
 dexn
职务:普通成员
等级:1
金币:1.0
发贴:157
|
#12001/3/14 17:14:10
在1-100之间产生随意数,但出现过的不再出现,有什么直接的办法吗?
|
 D计划-混沌
职务:管理员
等级:6
金币:15.2
发贴:3528
|
#22001/3/14 19:08:03
global z_list z_list=[] repeat with i= 1 to 100 add z_list,i end repeat ------------------------ global z_list set Z_num=random(count(z_list)) set youwantnum=getAt(z_list,Z_num) deleteAt z_list,Z_num ----------------------------
|
 rainy_5d
职务:普通成员
等级:2
金币:1.0
发贴:225
|
#32001/3/14 22:31:30
在纸牌游戏中会用到这个,因为每个人的牌是随机的,而且不能重复。 我的思路是声明2个数组,一个存放1-100,另外一个存放新的数组,然后每次使用random前都从旧的数组中将此数减去,然后新数组中x=random(100) x=random(99) ....依次类推,使用循环,可保证随机数不出现重复。
|
 dexn
职务:普通成员
等级:1
金币:1.0
发贴:157
|
#42001/3/15 13:57:26
这种方法我也知道,但我之所以问有没有直接的方法,是因为出现过的数字在后来却又要可以用,而且产生的随机数已经需要对应列表种的一个数。
|
 jiesun
职务:普通成员
等级:1
金币:1.0
发贴:182
|
#52001/3/16 12:32:09
on RandomList Num randomList = [] repeat with n = 1 to Num randomlist.addat(random(n),n) end repeat return randomList end RandomList
|