🍝

サイゼリヤ1000円ガチャのアルゴリズム考察

2021/04/07に公開

TL;DR

1000円サイゼリヤガチャ を回して932円が出たらスクショを撮って教えて

本編

先日瞬間風速的に盛り上がった1000円サイゼリヤガチャ
https://saizeriya-1000yen.herokuapp.com/

最初は出てくるメニューがときどき面白かっただけなんだけど、回すうちに合計金額が 1000円から大きくハズレない その仕組が気になった。というのもこういう既定の量に合わせて乱択するってのは本来は複雑なアルゴリズムが必要になる。

ポテトチップス工場の袋詰工程を考えてみて欲しい。60g入ってるとされているモノが少なければクレームになるし多ければ損をする。そういった工場でこの問題をどうやって解いてるかは興味があれば調べて欲しいが、ここではサイゼリヤガチャだけを考えよう。

そうしてガチャを回すこと十数回、あることに気がついた。一番安いメニューが「トッピング半熟卵」の69円だ。このことから以下の簡単なアルゴリズムを思いつく。

  1. 残額を1000円とする
  2. 残額以下の品目をリストアップする
  3. 品目数が0なら終了
  4. 2でリストアップした品目から1品を選択する
  5. 残額から4で選択した品目の価格を引く
  6. 2に戻る

真面目に書いたが、簡単にいえば手持ちから選べるメニューを適当(ランダム)に注文するのを繰り返すというだけのこと。これは制限付きの乱択組み合わせに比ぶるべくも無くシンプル。ただサイゼリヤのメニューには安いものがあるために、結果1000円から大きくハズレないということになる。

このアルゴリズムに基づくとガチャが出しうる最低合計額は932円だと仮定できる。というのは931円だと「トッピング半熟卵」69円が追加され1000円ちょうどになってしまうから。
検証のために数百回くらいガチャを回したが、実際に私が確認できた最低合計金額は933円だった。

幻の932円は是非あなたの目で確かめて欲しい。
https://saizeriya-1000yen.herokuapp.com/
なお932円をみたらスクショを撮るのを忘れないように。


P.S. 実はちょうど1000円という組み合わせもみたことがない。この仮説に基づけばグラスワイン(100円)x10個で1000円という組み合わせもあるはずなのでお暇なかたはそちらにもチャレンジしてみて欲しい。

2021/04/07追記

サイゼリヤの端数を廃止するという価格改定により、ガチャでは1000円ちょうどしか出ないようになっています。

Discussion