请教一个关于随机函数的算法问题 ( 积分: 50 )

J

jhddx

Unregistered / Unconfirmed
GUEST, unregistred user!
我需要自动生成一组随机数,要求必须成对出现,例如: 1 2 2 3 4 5 2 4 1 2 3 5 这样的..位置不限,谁多谁少不限,关键是成对!
类似于连连看游戏的那种...
请高手给个思路 谢谢了..
 
生成一个成对出现的数组,然后随机调整次序吧
 
对啊,这个不是随机数,是随机次序,你可以先自己定好数,然后随机次序出现。就向楼上说的那样。呵呵。 [:D]
 
预先成对生成,然后打乱顺序,是一个很直观的方法。具体打乱方法可以参考542886号贴
子。不过这种方法在序列较长时的空间占用比较大,我以为只要记录数字出现次数的奇偶性
就够了。在序列快结束时,将几个出现次数为奇数的数字生成出来即可。:)
 
TO:creation-zy
你最后说的那个方法,也存在一个问题啊..如果序列结素的时候再留几个空用来配对是吧..
比如我要取100个值 当我取到96个的时候..前面全部配好对了..那我第97个改怎么取呢.......
 
如果前面都配好了,那就变成了在剩余长度中进行随机成对生成了——和原问题一样了。
——这个问题是递归的,哈哈。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
949
SUNSTONE的Delphi笔记
S
S
回复
0
查看
770
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
926
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
顶部