![]() |
||
Golden Member
![]() ![]() ![]() ![]() 加入日期: Nov 2003 您的住址: 銀河-太陽系-地球-亞洲-中華民國
文章: 2,579
|
b1 = Int(Rnd() * num) + 1 '亂數選號
Debug.Print b1 <==此句程式碼新增加作測式 發現Debug.Print b1 若是跑出之前的號碼 此程式會從39、38、37、36、35 這幾個號碼選出來 我懷疑 這個程式 39、38、37、36、35這幾個號碼出現機率特別高 這是我的懷疑 沒把握
__________________
☆★☆★☆★☆★☆★☆★☆★☆★☆★ |
|||||||
![]() |
![]() |
Power Member
![]() ![]() 加入日期: Jan 2002 您的住址: Taipei
文章: 661
|
這樣說的話, 你是懷疑 VB 的 Rnd() 的亂數表不夠亂了? (難道自己寫一個亂數產生的函式就能保證一定夠亂了嗎?)
基本上這與上頭程式的邏輯無關吧.
__________________
![]() Tommy 碎碎念... |
||
![]() |
![]() |
Major Member
![]() 加入日期: Dec 2002 您的住址: 謎
文章: 265
|
這個程式看起來沒甚麼問題。
|
![]() |
![]() |
Advance Member
![]() ![]() 加入日期: Mar 2002
文章: 304
|
![]() 引用:
以"理論"來看的話,若Randomize、rnd有效, 測試數量大的話,每個數中的機率,應該是幾近相同的。 如果您不相信Randomize、rnd的話, 那,機率就是不相同的。 |
|
![]() |
![]() |
*停權中*
加入日期: Oct 2001 您的住址: 鬼島-高譚市
文章: 5,987
|
引用:
For i = 1 To 39 ball(i) = i Next num = 39 For i = 0 To 5 b1 = Int(Rnd() * num) + 1 '亂數選號 Text1(i).Text = ball(b1) '選中的號碼,放入Text1文字方塊中 ball(b1) = ball(num) num = num - 1 Next i 我不太能理解的是這個for迴圈中ball(b1)=ball(num) 這行不就一直等於39不會改變嗎 ![]() 那這麼做的意義是什麼?? 他下面那行num = num - 1不就也沒有意義?? |
|
![]() |
![]() |
*停權中*
加入日期: Dec 2005
文章: 21
|
我的寫法,模擬洗牌發牌方式,機率應該比較接近實際吧,參考看看吧
Lotto = rnd_plus( 6, 49 ) '49選6 Function rnd_plus( Vquantity , Vrange ) Randomize ReDim hand_card(Vquantity) ReDim card(Vrange) for i = 1 to Vrange card(i) = i next for j = 1 to Vrange chang_1 = int((Vrange * Rnd) + 1) chang_2 = int((Vrange * Rnd) + 1) temp_card = card(chang_1) card(chang_1) = card(chang_2) card(chang_2) = temp_card next for k = 1 to Vquantity hand_card(k) = card(k) next rnd_plus = hand_card End Function 此文章於 2008-09-21 10:27 PM 被 michelle_lai529 編輯. |
![]() |
![]() |
Advance Member
![]() ![]() 加入日期: Mar 2002
文章: 304
|
![]() 引用:
如果想不通,您可以拿一張紙,寫下1~39, 然後,step by step的執行它的程式,應該就會了解。 仔細想想,您就會懂了。 ※ball(b1)=ball(num)是把被抽中的數,用被排除掉的數字(num)代替。 ※num = num - 1,則是控制剩下數字的數量,39、38、37......... |
|
![]() |
![]() |
Golden Member
![]() ![]() ![]() ![]() 加入日期: Nov 2003 您的住址: 銀河-太陽系-地球-亞洲-中華民國
文章: 2,579
|
看來我弄錯的機會很高
先說聲抱歉 明天再來好好想一想 ![]()
__________________
☆★☆★☆★☆★☆★☆★☆★☆★☆★ |
![]() |
![]() |
Power Member
![]() ![]() 加入日期: Mar 2005
文章: 566
|
這想法基本上沒有問題巴? 我在一些基礎程式的書上也有看到~
|
![]() |
![]() |
Major Member
![]() 加入日期: Sep 2001
文章: 262
|
引用:
這樣的作法會不會讓前面6個的出現機率偏高呢? |
|
![]() |
![]() |