Re: [问题] 如何让timer+imagelist随机图不重复?

楼主: VVll (李奥纳多皮卡丘)   2014-04-16 01:21:48
※ 引述《windmax1 (I do my best)》之铭言:
吃吃吃
: 产生结果如图http://imgur.com/2AakeZL
: 想要让六个号码彼此之间不重复,GOOGLE研究半天研究不出个所以
: 拜托高手指点一下方向!!
排列组合
http://ppt.cc/KG6s
从n个相异物不重复的取出m个之组合数
如果你要求效率很好的话,就是把所有的结果预先产出,
然后再程式初始化时加载,省去每次产生随机数的成本,
只要随机挑一组样本,执行效率非常好。
博弈游戏的机率也是类似作法。
那单纯一点的做法
你把1~n的数,初始化时放到一个vector内
每次取rand(vector.count)的随机数,取到的就移出
所以假设 1~9取3个任意不重复数
ex: vec = {1,2,3,4,5,6,7,8,9}
1.rand(vec.count)//count = 9 -> get vec[3] -> offset 3 移出vec
2.rand(vec.count)//count = 8 -> get vec[3] -> offset 3 移出vec
3.rand(vec.count)//count = 7 -> get vec[3] -> offset 3 移出vec
最后得到 {4,5,6}

Links booklink

Contact Us: admin [ a t ] ucptt.com