当該ページで倍増法を必勝法みたいにいっているけど、ほんとうなのかなぁ。
単純に考えて
- ゲームのルールを決めることができるハウスがゲストの必勝法(ハウスにとって必敗法)があるゲームを採用するはずがない。
- クラップスというゲーム自体、長いこと、存在する。
- ということは必勝法が存在しない、すくなくとも今だ、見つけられていない。
ということになるんじゃないか。
いちおう自分でもモンテカルロしてみる。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defun dice() | |
(+ (random 6) 1)) | |
(defun craps() | |
"負け:-1 勝ち:1" | |
(let ((sum (+ (dice)(dice)))) | |
(labels ((retry (x) | |
(let ((w (+ (dice)(dice)))) | |
(cond ((= x w) 1) | |
((= w 7) -1) | |
(t (retry x)))))) | |
(case sum | |
(2 -1) | |
(3 -1) | |
(4 (retry sum)) | |
(5 (retry sum)) | |
(6 (retry sum)) | |
(7 1) | |
(8 (retry sum)) | |
(9 (retry sum)) | |
(10 (retry sum)) | |
(11 1) | |
(12 -1))))) | |
(defun game (&optional (x 1000)) | |
(loop repeat x | |
collect | |
(craps))) | |
(defun double(i) | |
(let* ((bet 100) | |
(result 0) | |
(wrk (loop for x in (game i) | |
collect | |
(prog1 | |
(setf result (+ result (* bet x))) | |
(if (= x 1) | |
(setf bet 100) | |
(setf bet (* bet 2))))))) | |
(UIOP/FILESYSTEM:DELETE-FILE-IF-EXISTS "/tmp/result") | |
(with-open-file (stream "/tmp/result" :direction :output :if-exists :overwrite :if-does-not-exist :create) | |
(loop for x in wrk | |
do | |
(format stream "~D~%" x))))) |
1000回試行

あれ?
なんか、いけそうに見える。
540回ぐらいの大きな負けを超えることができれば、あとは順調に勝ちが積み上がっていくような……。
10000回試行

100000回試行

1000000回試行

10000000回試行

——なんなんだ、これは。フラクタルかよ!
どこまでいっても大負けになる瞬間がある。10000000回試行では瞬間的に1200000000円——12億……。どんなに勝ちを積んでもフッ飛んでしまうことがあるのか。おそろしい。