Suomalaisen Loton 7/39 todennäköisyydet.
Tulostaa tämän:
Loton 7/39 voittotodennäköisyydet
0.........2,19E-01
1.........4,12E-01
2.........2,75E-01
3.........8,18E-02
4.........1,13E-02
5.........6,77E-04
6.........1,32E-05
6 + 1.....1,37E-06
7.........6,50E-08
Form 1 = button1 + textbox1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Suomalaisen Loton todennäköisyydet
' Tulokset voi tarkistaa: http://www.veikkaus.fi/lotto/todennakoisyys.html
Dim N As Integer = 39
Dim K As Integer = 7
Dim L As Integer = 3 ' lisänumeroita
Dim i As Integer
Dim TodNäk() As Double = Lotto(N, K, L)
TextBox1.Text = "Loton 7/39 voittotodennäköisyydet" & vbNewLine
For i = 0 To K
If i = K Then TextBox1.AppendText("6 + 1" & vbTab & Format(CStr(TodNäk(K + 1)), "Scientific") & vbNewLine)
TextBox1.AppendText(i & vbTab & Format(CStr(TodNäk(i)), "Scientific") & vbNewLine)
Next
End Sub
'********************************
'Funktio: Lottotodennäköisyydet
'********************************
Public Shared Function Lotto(ByVal N As Integer, ByVal K As Integer, ByVal L As Integer) As Double() ' N= 39, K=7, L=3
Dim voitto As Integer
Dim YhdenRivinTodennäköisyys As Double
Dim VoittaviaYhdistelmiä As Double
Dim HäviäviäYhdistelmiä As Double
Dim LisänumeroYhdistelmiä As Double
Dim TodNäk(K + 1) As Double
Dim sum As Double
YhdenRivinTodennäköisyys = 1 / Kombinaatio(N, K)
For voitto = K To 0 Step -1
VoittaviaYhdistelmiä = Kombinaatio(K, voitto)
HäviäviäYhdistelmiä = Kombinaatio(N - K, K - voitto)
If voitto = 6 Then
'6 + 1
LisänumeroYhdistelmiä = VoittaviaYhdistelmiä * Kombinaatio(3, K - voitto)
TodNäk(K + 1) = YhdenRivinTodennäköisyys * LisänumeroYhdistelmiä
Else
LisänumeroYhdistelmiä = 0
End If
TodNäk(voitto) = YhdenRivinTodennäköisyys * (VoittaviaYhdistelmiä * HäviäviäYhdistelmiä - LisänumeroYhdistelmiä)
sum = sum + TodNäk(voitto)
Next
sum = sum + TodNäk(K + 1) 'tarkistussumma = 1.0
Return TodNäk
End Function
'**********************
' Funktio: Kombinaatio
'**********************
Public Shared Function Kombinaatio(ByVal JoukonKoko As Long, ByVal OtosKoko As Long) As Long
'"Kuinka monella tavalla Joukosta voi valita Otoskoon mukaisen määrän,
'kun otoksen erilaiset keskinäiset järjestykset eivät tee uusia yhdistelmiä.
'Ei takaisinpanoa."
Dim i As Long
Dim n As Long = 1
Dim m As Long = Permutaatio(JoukonKoko, OtosKoko)
For i = 1 To OtosKoko
n = n * i
Next
Return m \ n
End Function
'********************
'Funktio: Permutaatio
'********************
Public Shared Function Permutaatio(ByVal JoukonKoko As Long, ByVal OtosKoko As Long) As Long
'"Kuinka monella tavalla Joukosta voidaan valita otoskoon mukainen määrä,
'kun ei tehdä takaisinpanoa ja
'otoksen keskinäinen järjestys tekee uusia yhdistelmiä"
Dim i As Long
Dim n As Long = 1
For i = JoukonKoko To JoukonKoko - OtosKoko + 1 Step -1
n = n * i
Next
Return n
End Function
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TextBox1.Multiline = True
TextBox1.ScrollBars = ScrollBars.Vertical
TextBox1.Height = 200
TextBox1.Width = 300
End SubHmm,hyvä tämä tulee tarpeseen jos oisi vain pekkä visualbacik
samoin
Aihe on jo aika vanha, joten et voi enää vastata siihen.