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個數字!! :shock:

發表於 : 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
如次就不重複了
也有一定的速度
機率也一樣