Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #include <windows.h>
- int FlipCoins(double dStartingBankroll, double dEdge)
- {
- double dBankroll(dStartingBankroll);
- int iHeads = 0;
- int iTails = 0;
- while (true)
- {
- int iFlip = (rand() % 2);
- if (iFlip == 0)
- {
- dBankroll += 1.0 + dEdge;
- ++iHeads;
- }
- else
- {
- dBankroll -= 1.0;
- ++iTails;
- }
- //if ((iHeads + iTails) % 10 == 0 && (iHeads + iTails) > 0)
- // printf("Flipped %d coins - bankroll $%.2f\n", iHeads + iTails, dBankroll);
- if (dBankroll <= 0.0)
- {
- //printf("Broke after %d flips\n", iHeads + iTails);
- return iHeads + iTails;
- }
- }
- }
- void main()
- {
- const int iTotalRuns = 10000;
- const double dStartingBankroll = 5;
- const double dEdge = 0.01;
- srand((unsigned int)time(NULL));
- unsigned long long ullFlips(0);
- for (int i = 0 ; i < iTotalRuns ; ++i)
- {
- ullFlips += FlipCoins(dStartingBankroll, dEdge);
- if (/*(i % 10) == 0 && */i > 0)
- printf("After %d runs - Averaged %.3f flips to go broke from $%.3f with %.3f edge\n", i, static_cast<double>(ullFlips) / static_cast<double>(i), dStartingBankroll, dEdge);
- }
- printf("Total - Averaged %.3f flips to go broke from $%.3f with %.3f edge\n", static_cast<double>(ullFlips) / static_cast<double>(iTotalRuns), dStartingBankroll, dEdge);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement