googleandy 發表於 14-6-1 09:38

請教 Random 函數

若要很公平產生 1,2,3,4 四個整數隨機值,下列程式是否正確?

VAR: A(0);
A=IntPortion(Random(4))+1


或是其它正確做法?
thanks.



jodo 發表於 14-6-1 11:56

這個方式沒有問題,但必須考量非常稀少的一個情況,
那就是當 random(4)=4的時候,
所以只要加一個一行即可:
安迪哥 參考一下

VAR: Abc(0);
Abc=IntPortion(Random(4))+1;
if abc=5 then abc=4;

{:4_684:}

jodo 發表於 14-6-1 12:13

jodo 發表於 14-6-1 11:56 static/image/common/back.gif
這個方式沒有問題,但必須考量非常稀少的一個情況,
那就是當 random(4)=4的時候,
所以只要加一個一行即可 ...

=4 是比較簡便的方法 畢竟出現5的機率很低
但如果比較嚴謹考量機率的公平
應該 用這樣

VAR: Abc(0);
Abc=IntPortion(Random(4))+1;

while Abc=5 begin
Abc=IntPortion(Random(4))+1;
end;



安迪哥請享用~
{:4_684:}

googleandy 發表於 14-6-1 12:25

jodo 發表於 14-6-1 12:13 static/image/common/back.gif
=4 是比較簡便的方法 畢竟出現5的機率很低
但如果比較嚴謹考量機率的公平
應該 用這樣


所以碰到random(4)等於4,
就不算,重新執行一次就是了。

看起來是好主意,謝謝Jodo大。

bacardi 發表於 14-6-1 19:58

小弟已經有快一年想不出好點子來回測了, Andy大的點子源源不絕, 小弟佩服的五體投地

{:5_260:}

Sung99 發表於 14-6-1 20:28

好多熱心的人 ! 這是ㄧ個好地方 !

{:4_209:}

iliketrading 發表於 14-6-3 00:33

謝謝分享....{:4_196:}

f29825604 發表於 14-6-3 08:34

謝謝分享....{:5_260:}

square718 發表於 14-6-6 14:21

謝謝分享~學習了 :D
頁: [1]
查看完整版本: 請教 Random 函數