Hallo, ich bräuchte mal wieder eure Hilfe.
Zum Vorhaben:
Ich möchte mir einen Systemwettenrechner (also Gewinnberechnung bei beispielsweise 3 aus 7 gewonnen Wetten, bei vorgegebenem Wetteinsatz pro Wette ) schreiben, bzw. habe ich schon und alles funktioniert. Nun möchte ich jedoch noch wenn möglich den Code optimieren.
Mein Rechner kann die Systemwetten 2 (bis 10 ) aus 2 (bis 10) berechnen. Mehr brauche ich nicht.
Hier mal der Code der Berechnung 2 aus x bis 4 aus x. Mit jeder Erhöhung wird also eine Schleife mehr benötigt. Nun Frage ich mich ob man diese Berechnung nicht in einer einzigen Schleife (als Funktion, die sich selbst aufruft und die nötigen Parameter übergibt bekommt) erledigt bekommt? Da ich Mathe nur bis zur 10 Klasse hatte fehlt mir der nötige Background um bei einer Suche im Netz das richtige Stichwort zu benutzen...
Noch eine Anmerkung: Die Schleifen könnte ich auch komplett bis "Quoten.Length - 1" durchlaufen lassen, das Ergebnis wäre immer noch richtig, würde aber (wahrscheinlich unmerklich) länger dauern...
Zum Vorhaben:
Ich möchte mir einen Systemwettenrechner (also Gewinnberechnung bei beispielsweise 3 aus 7 gewonnen Wetten, bei vorgegebenem Wetteinsatz pro Wette ) schreiben, bzw. habe ich schon und alles funktioniert. Nun möchte ich jedoch noch wenn möglich den Code optimieren.
Mein Rechner kann die Systemwetten 2 (bis 10 ) aus 2 (bis 10) berechnen. Mehr brauche ich nicht.
Hier mal der Code der Berechnung 2 aus x bis 4 aus x. Mit jeder Erhöhung wird also eine Schleife mehr benötigt. Nun Frage ich mich ob man diese Berechnung nicht in einer einzigen Schleife (als Funktion, die sich selbst aufruft und die nötigen Parameter übergibt bekommt) erledigt bekommt? Da ich Mathe nur bis zur 10 Klasse hatte fehlt mir der nötige Background um bei einer Suche im Netz das richtige Stichwort zu benutzen...
VB.NET-Quellcode
- Select Case SystemWette
- Case 2 ' 2 aus x
- For a As Integer = 0 To Quoten.Length - SystemWette ' Jede Quote durchlaufen (-1 wegen Index 0 ) - Außer die Anzahl an Benötigten Wetten, weil die am Ende nicht mehr kombiniert werden können.
- For b As Integer = a + 1 To Quoten.Length - 1
- Gewinn += Quoten(a) * Quoten(b) * EinsatzProWette
- Next
- Next
- Case 3 ' 3 aus x
- For a As Integer = 0 To Quoten.Length - SystemWette
- For b As Integer = a + 1 To Quoten.Length - 2
- For c As Integer = b + 1 To Quoten.Length - 1
- Gewinn += Quoten(a) * Quoten(b) * Quoten(c) * EinsatzProWette
- Next
- Next
- Next
- Case 4 ' 4 aus x
- For a As Integer = 0 To Quoten.Length - SystemWette
- For b As Integer = a + 1 To Quoten.Length - 3
- For c As Integer = b + 1 To Quoten.Length - 2
- For d As Integer = c + 1 To Quoten.Length - 1
- Gewinn += Quoten(a) * Quoten(b) * Quoten(c) * Quoten(d) * EinsatzProWette
- Next
- Next
- Next
- Next
- End Select
Noch eine Anmerkung: Die Schleifen könnte ich auch komplett bis "Quoten.Length - 1" durchlaufen lassen, das Ergebnis wäre immer noch richtig, würde aber (wahrscheinlich unmerklich) länger dauern...