When John Gambles at the Casino Codility: Analyse

Das Codility-Problem 'When John Gambles at the Casino' fordert 2026 weiterhin Programmierer heraus. In diesem Artikel analysieren wir das Problem, Lösungsansätze und optimale Algorithmen. John startet mit einem Budget und wettet, bis er gewinnt oder pleite ist – berechnen Sie Wahrscheinlichkeiten.

Ideal für Coding-Interviews. Wir erklären Mathe, Code in Python/JS und Edge-Cases detailliert.

Problemverständnis

John hat initiales Geld X, wettet
Y pro Runde. Gewinnt er Z oder
Problemverständnis

John hat initiales Geld X, wettet Y pro Runde. Gewinnt er Z oder verliert Y. Wie oft gewinnt er, bevor Bankrott?

Es geht um unendliche Sequenzen von Win/Loss mit gegebener Wahrscheinlichkeit P.

  • Input: X, Y, Z, P
  • Output: Erwartete Gewinnanzahl
  • Constraints: X,Y,Z >0, P in [0,1]

Mathematische Lösung

Fact: Verwenden Sie dynamische Programmierung oder Matrix-Exponentiation Key: Mathematische Lösung

Verwenden Sie dynamische Programmierung oder Matrix-Exponentiation für Effizienz.

DP-Ansatz: dp[i] = Erwartung bei Guthaben i. Übergänge: Win -> i+Z-Y, Loss -> i-Y.

  • Base: dp[0]=0
  • Rekursion: dp[i] = P*dp[i+Z-Y] + (1-P)*dp[i-Y] +1 (für jeden Gamble)
  • O(X*max(Z)) Komplexität

Code-Beispiel Python

Fact: Implementierung mit Memoization. Key: Code-Beispiel Python

Implementierung mit Memoization.

  • def solution(X, Y, Z, P):
  • memo = {}
  • return dp(X) // rekursive Funktion mit Cache

Optimierungen und Tests

Edge-Cases: P=0 (0 Wins), P=1 (unendlich,
aber cap). Zeitlimits beachten.
Optimierungen und Tests

Edge-Cases: P=0 (0 Wins), P=1 (unendlich, aber cap). Zeitlimits beachten.

  • Test: X=10,Y=1,Z=2,P=0.5 -> ~10
  • Skalierung auf X=10^6
  • Matrix-Methode für O(log N)

Häufige Fragen

Was ist das Codility-Problem?

Ein Wahrscheinlichkeitsproblem über Gambles bis Pleite oder Win-Streak.

Welche Sprache empfohlen?

Python für Klarheit, C++ für Speed bei großen X.

Häufige Fehler?

Unendliche Loops bei P=1, Floating-Point-Präzision.

Wo üben?

Auf Codility, LeetCode ähnliche DP-Probleme.