What I really want to know is how is the procedure that pokerstove like software use to calculate the equity of one hand against another.
I don't have inside information about the mechanisms Pokerstove uses to calculate the winning chances for each range but it's rather straightforward to compute them.
The first thing they do is to create / use a library that allows them to compare a
5-6-7 card sample vs another
5-6-7 card sample to calculate who's the winner of the 2 hands. That needs also to be fast, like something CactusKev evaluator.
The second thing is then to run a great number of simulations (in the magnitude of tens or hundreds thousands or even millions), having these inputs:
- A specific hand(s) (empty ranges of pokerstove in the left)
- A specific board (up-right of pokerstove)
For each simulation, pokerstove takes a random hand from the input per player. For example, if for a player the input range is like
22+,A2o+, then it breaks down the whole range into something like
22,33,44,55,66....A2o,A3o,A4o...., then picks a random hand from it, that become the hand for the current simulation. The same happens for every other player (if they're filled).
The third step is for every missing board card (etc. if the given board is like
Ah Kd 7c, 2 more cards are added randomly for every simulation to produce
always a complete 7-card sample to define the winner in the showdown; that is the winning chance, it's always defined with all cards shown)
For each simulation, you have a winner between
2+ hands; these results are stored internally, then they're divided with number of simulations to produce the so called winning chance. It's sort of brute force.
Many good simulation tools are available. I like ProPokerTools because it calculates equities against ranges and exact hands for the games I play.
I've made an example that shows the odds of a particular hand winning vs a range of hands. Note the odds in the bottom 3 charts for 99, TT & JJ. At first glance it doesn't seem to make sense that 99 has more equity than JJ pre-flop. It's an artefact of the chosen ranges.
There is software that can select the chosen ranges your opponents statistically hold, live, at the tables. The problem of getting data on all opponents (10 billion hands in your HUD) is overcome by software that was once legal. Personally I always considered it cheating, never used it and now major sites prohibit such software.
Anyway, if I model the chosen ranges at 10% and 1% instead of 10% and 15%, you see 99 becomes > JJ because 10% and 1% ranges contain more cards/combos JJ wants to hit (other Js, 789TQKA).
If you wonder how the equity numbers are actually calculated, it's not that complicated.
So there are 1326 unique hole card combos which condense to 169 distinct hands - 13 pocket pairs, 78 suited hands and 78 unsuited hands. The top 10% of hands = best 17 hands, etc.
With that info you can then compute the odds of a single hand/range against a group of single hands/ranges or against a random hand/range on any street.
Holdem is by far the least complicated version of poker. Omaha has 16,400 hole card combos, 5-card Omaha has 134,000 hole card combos