;; things that can happen: ;; turn kits kill (KILLS / NDECK) ;; turn hits out (OUTS / NDECK) "turn suckout" ;; ... and river misses "resuck" ;; ... and river hits kill ((NDECK - 1 - KILLS) / (NDECK-1)) ;; turn misses ((NDECK - KILLS - OUTS) / NDECK) ;; ... and river hits out (OUTS / (NDECK - 1)) ;; ... and river hits kill [N/A] ;; ;; so flop percentage is: ;; (outs/ndeck) * ((ndeck-kills-outs)/ndeck) ;; + ((ndeck-kills-outs)/ndeck)*(outs/(ndeck-1)) ;; ;; This table does not consider runner-runner cases ;; (KK vs AAs, board KsJs2s Ts Qs) (defun compute-outs-table (s ndeck minouts maxouts minkills maxkills format-number) (format s "") (loop for i from minkills to maxkills do (format s "" i)) (format s "~%") (loop for nouts from minouts to maxouts do (format s "" nouts) do (loop for nkills from minkills to maxkills do (let ((chance (+ (* (/ nouts ndeck) ; hit the turn (- 1 (/ nkills (1- ndeck))) ; no kill on river ) ;; OR (* (- 1 (/ (+ nkills nouts) ndeck)) ; miss the turn (/ nouts (1- ndeck))) ; hit the river ))) (format s "") )) do (format s "~%") ) (format s "
outs~d
kills
~d ") (apply format-number (list s chance)) ;; (format s "~6F" chance) (format s "
") ) (defvar *output-filename* "killer-cards.html") ;; fix me (defun write-page () (let ((out (open *output-filename* :direction :output :if-exists :supersede :if-does-not-exist :create))) (format out "~%") (format out " Killer Cards revisited~%") (format out "

Killer Cards Revisited

Super/System 2 contains a chart called Lyle Berman's Killer Cards Chart (page 461). This chart explores a flaw in simple outs: just because you hit your hand doesn't mean your opponent won't make a better one.

Berman's explanation of his chart was worrying. He doesn't show his work, and wryly comments that he doesn't believe he could recreate it. (He was apparently bored enough to do it once, but not twice.) I understand not wanting to grind out that work, but why not pour some coffee down Mike Caro and see what he can do?

I decided to recreate the table. My numbers math his, which is good. I generated a complete chart for Hold 'Em as well as Omaha. I also did it a little more precisely, and then exactlythe first charts are percentages, then exact odds.

I believe this chart is correct, but it is not necessarily adequate to cover actual situations. Runner-runner events (the turn completes my flush against your set, but the river pairs the board filling you up) are not adequately explored by this table, nor are split pots. For cases where you're trying to work that out exact math, I recommend twodimes or pokersource.

") (format out "

Hold 'Em (45 unseen cards)

~%") (compute-outs-table out 45 1 21 0 10 (lambda (s n) (format s "~6F%" (* 100 n)))) (format out "

Omaha (High, 41 unseen cards)

~%") (compute-outs-table out 41 1 21 0 10 (lambda (s n) (format s "~6F%" (* 100 n)))) (format out "
~%") (format out "

Hold 'Em (45 unseen cards)

~%") (compute-outs-table out 45 1 21 0 10 (lambda (s n) (format s "~d" n))) (format out "

Omaha (High, 41 unseen cards)

~%") (compute-outs-table out 41 1 21 0 10 (lambda (s n) (format s "~d" n))) (format out "
Tim Showalter / tjs@psaux.com ") (format out "~%") (close out)))