Untitled
unknown
csharp
8 months ago
1.5 kB
3
Indexable
namespace Test; internal static class Program { private static void Main(string[] _) { const int NUMBER_OF_TRIES = 10000000; int sumTwoHeads = 0; int sumHeadTail = 0; for (int i = 0; i < NUMBER_OF_TRIES; i++) { sumTwoHeads += Solve((firstResult, secondResult) => firstResult is FlipResult.Heads && secondResult is FlipResult.Heads); sumHeadTail += Solve((firstResult, secondResult) => firstResult is FlipResult.Heads && secondResult is FlipResult.Tails); } double expectationTwoHeads = (float)sumTwoHeads / NUMBER_OF_TRIES; double expectationHeadTail = (float)sumHeadTail / NUMBER_OF_TRIES; Console.WriteLine("В среднем для орёл-орёл: " + expectationTwoHeads); Console.WriteLine("В среднем для орёл-решка: " + expectationHeadTail); } private static int Solve(Func<FlipResult?, FlipResult, bool> predicate) { Random random = new Random(); int counter = 0; FlipResult? previousResult = null; while (true) { FlipResult result = (FlipResult)(random.Next() % 2); counter++; if (predicate(previousResult, result)) { break; } previousResult = result; } return counter; } } internal enum FlipResult { Heads = 0, Tails = 1 }
Editor is loading...