第 1 頁 (共 1 頁)
[問題]程式問題
發表於 : 2004-01-13 4:02 PM
由 大地旅法師
如何用最快的方法在一定範圍內跑出數個不重複的隨機數
[閒聊]...
發表於 : 2004-01-15 12:42 PM
由 Steven
難道你要做樂透選號程式嗎?
去看看遠見那裡的選號程式的內碼吧!
發表於 : 2004-01-15 1:03 PM
由 冰浩
我是這樣做的
10 K=INT(RND(1)*10)+1
11 L=INT(RND(1)*10)+1
12 IF L=K THEN GOTO 11
........
所以道越後面要寫的IF就越多...
發表於 : 2004-01-15 1:50 PM
由 大地旅法師
對阿
而且會慢
=============
研究快速方法中..
發表於 : 2004-01-15 1:59 PM
由 Steven
大地旅法師 寫:對阿
而且會慢
=============
研究快速方法中..
應該不會慢吧!
我用都很快ㄟ.
想要選號程式嗎?
發表於 : 2004-01-15 2:51 PM
由 大地旅法師
100個數中隨機選99個
最後那個要跑很久
========================
程式..?不用吧
它大概也是這樣算的
[閒聊]...
發表於 : 2004-01-15 3:31 PM
由 Steven
你到底是要用什麼啊?
要100個數字!!

發表於 : 2004-01-15 5:57 PM
由 冰浩
那...你還不如隨機選不要的那個
100個中選一個丟棄
取剩下的99個
不就好了嗎??
發表於 : 2004-01-15 7:13 PM
由 PG
..........
先看看重複率
不高ㄌ話(如...1000中挑選出50ㄍ...重複率5%)
用迴圈來控制
變數用陣列存
如果重複率很高(如...1000中挑選出500ㄍ...重複率50%)
那先把1到1000放到陣列中
打亂陣列
再挑選前面500ㄍ變數
發表於 : 2004-01-18 9:13 PM
由 gbwind
打亂陣列 ?how?
發表於 : 2004-01-18 10:27 PM
由 大地旅法師
我們後來是這樣:
每跑出一個數字就記錄下來
跑下一個數字時就和前面每一個數字比較
大於等於時就+1
如次就不重複了
也有一定的速度
機率也一樣