必ず儲かるスクラッチくじ | rpnアドホック [実践] | 逆ポーランド電卓の実践ウェブ rpn hacks!

逆ポーランド電卓の実践ウェブ rpn hacks!

逆ポーランド電卓rpnの実践ウェブ   
rpn hacks! アールピーエヌ・ハックスサイトマップ

rpn | 実戦 | rpnアドホック | 気になる数字をrpnで探求!rpnをアドホックに楽しもう。

HOME > 実践 > rpnアドホック > 必ず儲かるスクラッチくじ

hatena twitter facebook rss ソーシャルブックマーク

必ず儲かるスクラッチくじ

 ジャンケンスクラッチ2ラウンド6という宝くじがあります。簡単に手が出せる1枚200円のスクラッチくじの一種です。くじ1枚の真ん中のスクラッチを削るとあなたのジャンケンの手が出てきます。周りの6つのスクラッチが相手のジャンケンの手です。全部削って、2勝から6勝までが当選で、アイコは負けになります(以下がイメージ図)。

        \   相手の手1   /
          \  ROUND1   /           +--------------------+
  相手の手6| ̄ ̄ ̄ ̄ |相手の手2   | グーはチョキに勝ち |
   ROUND6  | 自分    |  ROUND2    | チョキはパーに勝ち |
  ―――― |   の手  |――――    | パーはグーに勝ち   |
  相手の手5|____ |相手の手3   | アイコは負け       |
   ROUND5 / 相手の手4 \ ROUND3    +--------------------+
        /    ROUND4     \


このスクラッチくじ、れっきとした公営ギャンブルなのですが、このくじは果たして得なのでしょうか。その当選金額と本数は以下のとおりです。

ジャンケンスクラッチ2ラウンド6 第875回全国

  等級等 当せん金  本数
  ====== ========= ===========
  1等    500,000円 70本                 ; 6回勝ち
  2等    50,000円  1,400本              ; 5回勝ち
  3等    10,000円  7,000本              ; 4回勝ち
  4等    1,000円   70,000本             ; 3回勝ち
  5等    200円     2,100,000本          ; 2回勝ち


くじの全当選金額を計算すると、

  >rpn 500k 70 * 50k 1400 * 10k 7k * 1k 70k * 200 2100k * ++
  6.65e+08


6億6500万円です。このときの想定販売金額が42億円なので、2100万枚の売上を想定しています。とすると掛け金に対する期待値はわずか15.8%です。要は200円掛けると31.6円返ってくるギャンブルですね。逆に言えば、200円掛けるごとに170円損するギャンブルってことです。お金を増やすつもりなら、やる価値はありません。

スクラッチくじの当選確率

 ところが、このくじの仕様では、相手に6回中、2回さえ勝てば損はしないことになります。これはとても割のいい条件に見えます。実際に1等から5等の出現確率と当選金から期待値を計算してみます。6回の試行から1/3の確率の当たり(グーならチョキ)をn回繰り返すことになるので、二項分布に従いますね。

  >rpn 6 6 3 n :prob-bin >tmp
  >rpn 5 6 3 n :prob-bin >>tmp
  >rpn 4 6 3 n :prob-bin >>tmp
  >rpn 3 6 3 n :prob-bin >>tmp
  >rpn 2 6 3 n :prob-bin >>tmp
  >type tmp
  0.00137174
  0.0164609
  0.0823045
  0.219479
  0.329218
  >rpn :sum <tmp
  0.648834


当選する確率は65%です。

スクラッチくじの期待値

 続けて、期待値をrpnで計算すると、

  >rpn 6 6 3 n :prob-bin | rpn 500k * >tmp
  >rpn 5 6 3 n :prob-bin | rpn 50k * >>tmp
  >rpn 4 6 3 n :prob-bin | rpn 10k * >>tmp
  >rpn 3 6 3 n :prob-bin | rpn 1k * >>tmp
  >rpn 2 6 3 n :prob-bin | rpn 200 * >>tmp
  >rpn :sum <tmp
  2617.28


200円投資して回収できる期待値は2617円。なんとプロフィットファクター(PF)が10を越えます。勝率65%でPF10なんて聖杯です。このギャンブルは回数を繰り返すほど儲かることになります。

でも実際はそうなっていません。そんな話も聞きません。これって、相手のジャンケンの手がランダムに出現していないことを意味します。つまり、あなたのジャンケンの手がパーなら本当は1/3の6乗の確率で全部がグーになるのですが、実際はそうなっていない可能性が大です。

スクラッチくじのシミュレーション

 実際にジャンケンスクラッチ2ラウンド6のスクラッチくじをシミュレーションしてみましょう。期待値どおりならシミュレーションしても勝てるはずです。

自分のジャンケンの手は1/3の確率でグー、チョキ、パーのどれかを選び、同じようにして相手のジャンケンの手を6回決めます。肝心な点はすべてランダムに1/3の確率で独立事象(事前のジャンケンの手が次の手に影響しない)として手が決まることです。

そして、実際に仮想的にくじを買い、スクラッチして勝敗を決め、勝ち数を数えます。グーを1、チョキを2、パーを3にコード化して、ランダムに6つ生成するには、以下のrpn式で簡単に完成です。

  >rpn 3 ? -r 6
  2
  3
  1
  2
  1
  3


1~3の乱数を6回出力させています。そして、コード化したジャンケンの組み合わせの勝ち負けは次の通り。oが自分が勝ち、xが自分が負け、-は引き分けです。

  1-1 -     2-1 x     3-1 o
  1-2 o     2-2 -     3-2 x
  1-3 x     2-3 o     3-3 -


計算処理を簡便にするために勝ちではなく引き分けをカウントします。コード化された自分の手から相手の手を引いて0になれば引き分けであることが分かります(引き分けも勝ちも共に確率は1/3なので等価)。次の一行でスクラッチくじ一枚中、相手に勝った数を出してくれます。

  >rpn @a 3 ? - -b 3 ? #a -r 6 | rpn 0 0 :lookup | rpn :count
  3


上の例だと3回勝ったことになるので、1000円獲得です。この処理を1千回繰り返します。要は20万円をはたいてギャンブルすることになりますね。

シミュレーションはバッチを使う

 以下のように、rpn式を1千回書いたバッチファイルを用意します。

  rpn @a 3 ? - -b 3 ? #a -r 6 | rpn 0 0 :lookup | rpn :count >tmp
                              :
                            (中略) 1000回繰り返す
                              :
  rpn @a 3 ? - -b 3 ? #a -r 6 | rpn 0 0 :lookup | rpn :count >>tmp


時間は掛かりますが、実行後にtmpファイルに1千枚のスクラッチくじそれぞれの勝ち数が記録されます。後は勝ち数毎に枚数を数えて賞金を掛ければ全獲得金額が分かります。

  >rpn 6 6 :lookup <tmp | rpn :count | rpn 500k * >tmp1
  >rpn 5 5 :lookup <tmp | rpn :count | rpn 50k * >tmp2
  >rpn 4 4 :lookup <tmp | rpn :count | rpn 10k * >tmp3
  >rpn 3 3 :lookup <tmp | rpn :count | rpn 1k * >tmp4
  >rpn 2 2 :lookup <tmp | rpn :count | rpn 200 * >tmp5
  >paste tmp1 tmp2 tmp3 tmp3 tmp4 tmp5 | rpn ++
  2.8736e+06

シミュレーションの結果…

 2.8736e+06なので約290万円です。1000で割れば一枚あたりの平均獲得金額が2873円と分かります。事前に計算した期待値2617円に近いですね。ジャンケンの手はランダムに決まるので獲得賞金はばらつきますが、まず負けない、儲かるギャンブルになります。

冷静に考えて、ジャンケンで勝つ確率は1/3。6回連続で勝つ確率は(1/3)^6で0.00137174。逆算すると729回やればその内1回は6連勝する割合です。6連勝1回で50万円貰えるのだから、200円のスクラッチくじを145800円分を買えば、50万円儲かる可能性がある。そんなうまい話があるはずもなく…。

        *


 要は元から儲からないようなジャンケンの組み合わせが印刷されているってことになります。自分のジャンケンの手が自由に選べるのなら少しはましですが、全部印刷済みのものでギャンブルするのですから、全ては胴元の手の内にあるわけです。

仮に自分の手を自由に決められるなら、胴元の戦略はグー2つ、チョキ2つ、パー2つを割り振るしかありません。すると期待値は200円です。長く繰り返せば損も得もないギャンブルになります。

冒頭の賞金金額と販売金額は6億6500万円と42億円でした。仮に6億6500万円しか売れなかった場合、どうなるのでしょうか。200円賭けると200円戻ることになるのでしょうか。残念ながら、販売管理費等々が掛かるのでそうはなりません。結局は、販売金額に依存して、賞金をいくらにするかを胴元が判断し、スクラッチの確率を意図的に変化させるということですね(当選本数以上は用意しない)。

実際問題、販売総額が賞金総額より少なかった場合はどうなるのでしょうか?くじ自体が取り止めになることは払い戻しがあるので、コスト的に無理でしょうし、赤字覚悟で予定通りの当選本数でやるのでしょうか。それとも当選本数を変更するのでしょうか。

こうやってシミュレーションしてみると、ジャンケンスクラッチ2ラウンド6というギャンブルは、矢で抽選する宝くじや機械で抽選するロトよりもエグいものに思えます。なにしろ、ジャンケンだから1/3の確率で勝てると購入者が勝手にミスリードしてくれるのですから。

番外編:実際に10枚購入した結果

 最後に、実際のスクラッチ結果を載せておきます。ジャンケンの組み合わせが恣意的であることを証明できるでしょうか。

         No1 No2 No3 No4 No5 No6 No7 No8 No9 No10
  ROUND1 3-2 3-2 1-1 1-3 2-2 3-3 2-1 2-1 2-1 3-1
  ROUND2 3-1 3-2 1-3 1-3 2-1 3-2 2-1 2-3 2-1 3-1
  ROUND3 3-2 3-1 1-3 1-2 2-1 3-2 2-2 2-2 2-1 3-2
  ROUND4 3-2 3-3 1-2 1-3 2-3 3-2 2-1 2-2 2-2 3-3
  ROUND5 3-3 3-3 1-3 1-1 2-3 3-2 2-3 2-3 2-3 3-2
  ROUND6 3-2 3-1 1-3 1-3 2-2 3-1 2-1 2-3 2-1 3-3

警告rpnプログラムを実行するには、rpn試用版かrpn標準版が必要です(バージョンの違いはこちら)。

情報pasteは講座サポートにあります。lookupはpackage入門に同梱されています。prob-binはビジネス統計(推定編)に同梱されています。xypとnpdはrpnの姉妹ソフトウェアです。詳しくはプロダクトを参照ください。

rpnアドホック

アドホックに楽しもう

※実践コーナーのTOP

紹介 rpnの利用シーンはこちら…

講座初めての人のrpn基礎もどうぞ
講座しっかり学べるrpn入門もどうぞ
講座すぐに使えるdos入門もどうぞ
物語データを見抜くojt物語もどうぞ

実践他の分野への挑戦は実践TOP

応用rpnアプリケーションは応用TOP

書籍紹介

記事に関連した書籍

本ウェブサイトで扱った話題に関連した書物で、スタッフが実際に読了したものを紹介。

書籍数学の書籍
数の世界は思ったよりもエキサイティング

書籍投資の書籍
失敗しない投資には広範囲で実践的な知識が必要

警告バックスラッシュはエンマークに読み替えて下さい(IE)。
バックスラッシュとエンマーク

警告文字で作られた図表や式が崩れることがあります。ブラウザによっては固定幅フォントをMSゴシックにするときれいに表示されます。それでも崩れる場合は図表や式をメモ帳にコピー後、閲覧下さい。

警告rpn試用版と標準版(2kリビジョン)はダブルクォートで囲って下さい。

rpn 1 2 + ⇒ rpn "1 2 +"
rpn 1 -c foo ⇒ rpn "1" -c "foo"

ダブルクォートは省略できることが多いのですが、慣れない間は囲んだほうが無難です。なお、本ウェブサイトの記事ではrpn標準版(98リビジョン)を使用しているため囲っていません。詳しくは技術サポートの「rpn TIPS参照ください。

注意rpnの障害情報はこちら

警告rpn試用版の場合、複雑なプログラムや処理時間のかかるプログラムの一部には動作しないものがあるかもしれません。あくまで無料提供であることを勘案・了承ください。rpn標準版は、すべてのプログラムが動作します。