On 25th, the new version of Ubuntu gets released. It's even one of the two-year cycle LTS version. Which means, for the next five years (2029-05-31) it will receive patches updates and some feature updates. Security maintaince will even last ten years till 2034-04-25. So, if you need to switch before October 2025 to a new OS this could be a choice.
ICM
It's always nice to understand how something really works. And you only can prove you understand it when you can calculate something yourself. To get back into programming using C++ and to face the fear of recursion I thought it's a good exercise to try to implement that. First results where wrong which showed I either can't code or I didn't understand every step of the IC-Model. The latter was the case.
step 1: structure and inputs
struct Player{
std::string name;
int stack;
double equity;
};
std::vector<Player> players = {
{"Player 1", 1000, 0.0},
{"Player 2", 5000, 0.0},
{"Player 3", 1530, 0.0},
{"Player 4", 3003, 0.0},
{"Player 5", 2710, 0.0},
{"Player 6", 25, 0.0},
{"Player 7", 2000, 0.0},
{"Player 8", 5000, 0.0},
{"Player 9", 732, 0.0},
{"Player 10", 9000, 0.0},
};
std::vector<double> payouts = {27.50,16.20,11.12,9.50,3.00,3.00};
step 2: the function
Then I created a vector of pointers the players. Which, from the point of view of design, isn't the best choice as it has side-effects. Because I keep updating a vector outside of the function.
void icm(ptrPlayers players, const std::vector<double> &payouts, const int chips, const double chance, const int place){
if (place == payouts.size()){
return;
}
for(int i = 0; i < players.size(); i++){
double scenario = chance * players[i]->stack / chips;
players[i]->equity += payouts[place] * scenario;
ptrPlayers playersLeft(players);
playersLeft.erase(playersLeft.begin() + i);
icm(playersLeft, payouts, chips - players[i]->stack, scenario, place + 1); }
}
First I did sum up all the chips left in the game and pass the result as a parameter. You could do this job as well inside the function each iteration. For the first call the chance for it to happen is 1.0 (= 100%). And for each step down the ladder it will be weighted with the likelyhood of the branch. If there are no paid places left the recursion can abort as the remaining sum will be zero.
Now you can calculate the ICM yourself too!
Did sum up my expenses for this month so far. Which had me a little bit worried. But I gladly can announce I spend half the amount I had spend in March.
50% / 2 * 3 = 75%
Now I have almost two months of perfect book keeping!
My tablet still isn't back so I had to switch the site I played. Which will make things now and in the future a little bit more complicated...
Summary:
4 Tournaments
+ 32.17
$1174.45