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