public void GetExpectedNumberOfGamesBeforePerfectWarGame() { var duplicateCardProbability = new DuplicateCardProbability(); var perfectWarGameSolver = new PerfectWarGameSolver(duplicateCardProbability); // 159,620,172 var expectedValue = perfectWarGameSolver.GetExpectedNumberOfGamesBeforePerfectWarGame(); }
public void TestDuplicateCardProbability(int numDistinctCards, int numCopiesOfEachCard, double expectedPobability) { double epsilon = 0.0001; var duplicateCardProbabilityUtility = new DuplicateCardProbability(); var actualProbability = duplicateCardProbabilityUtility.FindProbabilityOfDrawingDuplicateCardAfterDrawing2CardsUntilEmpty( numDistinctCards, numCopiesOfEachCard); Console.WriteLine($"Num distinct cards: {numDistinctCards}, Probability: {actualProbability}"); Assert.LessOrEqual(Math.Abs(expectedPobability - actualProbability), epsilon); }