Board logo

標題: [發問] 機率問題(EX:39個號碼,五個號碼都在1~19的機率) [打印本頁]

作者: PKKO    時間: 2015-11-4 16:18     標題: 機率問題(EX:39個號碼,五個號碼都在1~19的機率)

想請問各位大大
這個機率問題小弟思考了很久仍不知道算法...

例如
1~39的號碼,一次抽五個號碼、不得重複

這五個號碼都出現在1~19的機率是多少?
四個號碼都出現在1~19的機率是多少?
三個號碼都出現在1~19的機率是多少?
二個號碼都出現在1~19的機率是多少?
只有1個號碼出現在1~19的機率是多少?
作者: stillfish00    時間: 2015-11-4 20:10

回復 1# PKKO
排列組合中  C(n,r)=n!/[r!*(n-r)!] ,!表示階層

五個號碼都出現在1~19,機率 = C(19,5)/C(39,5) = 0.020196
只有四個號碼出現在1~19,機率 =C(19,4)*C(20,1)/C(39,5) = 0.13464
只有三個號碼出現在1~19,機率 =C(19,3)*C(20,2)/C(39,5) = 0.31977
只有兩個號碼出現在1~19,機率 =C(19,2)*C(20,3)/C(39,5) = 0.33858
只有一個號碼出現在1~19,機率 =C(19,1)*C(20,4)/C(39,5) = 0.15989
作者: PKKO    時間: 2015-11-5 10:12

回復 2# stillfish00


    S大大,我心中充滿了感激,只能說感謝感謝再感謝

沒想到您連這種數學題目都能如此詳盡的說明,真是太感謝

想再請教一下,若以VBA撰寫程式碼

C(39,5)

該如何撰寫程式碼呢?
作者: stillfish00    時間: 2015-11-5 11:04

回復 3# PKKO
  1. 'n階層 , return double
  2. Function dblFactorial(n As Integer) As Double
  3.     dblFactorial = 1
  4.     For i = 1 To n
  5.         dblFactorial = dblFactorial * i
  6.     Next
  7. End Function

  8. '組合
  9. Function dblCombination(n As Integer, r As Integer) As Double
  10.     'By formula method:
  11.     dblCombination = dblFactorial(n) / (dblFactorial(r) * dblFactorial(n - r))
  12.    
  13. '    'Speedup method (less multiply computations , allowed larger n):
  14. '    dblCombination = 1
  15. '    For i = 1 To Application.Min(r, n - r)
  16. '        dblCombination = dblCombination * (n - i + 1)
  17. '    Next
  18. '    dblCombination = dblCombination / dblFactorial(Application.Min(r, n - r))
  19. End Function

  20. Sub Test()
  21.     MsgBox "五個號碼都出現在1~19,機率 = " & Format(dblCombination(19, 5) / dblCombination(39, 5), "0.000000")
  22. End Sub
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)