The weight array is a model of the opponent's hand. Each
opponent *p* has an array of weights *w*_{p}[*h*] where *h* represents
each possible two card hand.
There is a weight associated with each *h* (reset to 1 each new hand)
which approximately represents the conditional probability that player *p*
would have played in the observed manner (given that they held hand *h*).
We call these values weights because they act as multipliers in
the enumeration computations. If we want a probability distribution of
possible hands held by *p*, we normalize the array
by dividing each entry by the total sum of all the entries (the number
of valid entries depends on which hands are still possible).
The normalized entries *w*'_{p}[*h*] represent the conditional
probability that player *p* holds hand *h* (given the
betting history).

This is a very detailed representation, although there is some error since interdependencies are not considered. In the multi-player scenario we do not address the fact that different opponents cannot hold the same card. For example, if we assign a high relative probability to one specific opponent holding an Ace, we do not reduce the relative probabilities of the other opponents holding an Ace. This also means that when a player folds, the information regarding which hands that player may have held is discarded. The weight array is not adjusted with respect to the weight arrays of the other opponents. However, we feel this error is minor in comparison to the savings in complexity and computation time.