Jag vill loopa igenom alla kombinationer som är möjliga. Vilka sätt kan man plocka fram 5 element ur en lista av 52 element där ordningen inte spelar någon roll. Dvs ABCDE är samma sak som EDCBA. Dessutom får inte elementen upprepas. Dvs AABCD är inte tillåtet eftersom det förekommer två A.
Ett sätt jag testade var att köra 5 nästlade for-loopar. Där jag i varje loop körde igenom från 1 till 52. Dock gjordes en kontroll så inte det upprepas samma tecken. Men nu får jag ju inte fram endast en av varje kombination - utan vissa kombinationer upprepas. Man kan ju göra en if-sats som kontrollerar så inte kombinationen redan finns - men finns det något smidigare sätt?
Att plocka fram 5 element ur 52 där ordningen inte spelar någon roll, finns det ca 3,2 element om jag minns rätt. Då gäller det att effektivisera koden. =)
Därför jag vill få med exakt alla kombinationer. Då får jag med exakt procentsats när jag skall kolla sannolikheten för t.ex. kåk. Det är en kortlek ja.
Fast det du gör är ju att beräkna välkända sannolikheter, det vore väl effektivare att slå upp dom på nätet eller i vilken sannolikhetslärobok som helst och skapa konstanter med värdena.
När jag funderat på det ett tag så kommer dessa kort alltid att vara i ordning (c1 alltid mindre än c2, c2 alltid mindre än c3 osv.) Du kan alltså inte få dubletter.
For a = 0 To UBound(kort)
For b = a+1 To UBound(kort)
For c = b+1 To UBound(kort)
For d = c+1 To UBound(kort)
For e = d+1 To UBound(kort)
'...
Next
Next
Next
Next
Next
261 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25