Sobes.tech
Middle — Senior

Wie ändert man die Lösung für die Berechnung von Summen und Kombinationen von Würfeln, wenn die Anzahl der Würfel ein Parameter ist?

sobes.tech KI

Antwort von AI

Wenn die Anzahl der Würfel zu einem Parameter wird, muss die Lösung zur Berechnung von Summen und Kombinationen dynamisch und skalierbar sein.

Ansätze:

  1. Rekursiver Durchlauf:

    • Für jeden Würfel alle möglichen Werte (1–6) durchgehen.
    • Rekursiv die Werte summieren und die Anzahl der Kombinationen für jede Summe zählen.
  2. Dynamische Programmierung:

    • Verwendung eines Arrays oder Wörterbuchs, wobei der Index die Summe ist und der Wert die Anzahl der Wege, diese Summe zu erreichen.
    • Anfangs, für 0 Würfel, ist die Anzahl der Wege, die Summe 0 zu erreichen, 1.
    • Für jeden Würfel das Array aktualisieren, indem die Anzahl der Wege für die neuen Summen hinzugefügt wird.

Beispiel in Go mit dynamischer Programmierung:

func diceSums(numDice int) map[int]int {
    dp := make(map[int]int)
    dp[0] = 1

    for i := 0; i < numDice; i++ {
        next := make(map[int]int)
        for sum, count := range dp {
            for face := 1; face <= 6; face++ {
                next[sum+face] += count
            }
        }
        dp = next
    }
    return dp
}

// Verwendung:
// sums := diceSums(3)
// fmt.Println(sums) // Gibt die Anzahl der Kombinationen für jede Summe bei 3 Würfeln aus

Dieser Ansatz ermöglicht es, die Anzahl der Kombinationen für beliebige Würfelanzahlen effizient zu berechnen, ohne alle Varianten manuell durchzugehen.