スロットマシンに適切なペイアウト率を確保するにはどうすればよいですか?


11

私はスロットマシン用の乱数ジェネレーター、リールストップ計算、およびユーザーに勝つチャンスを与える方法について多くの研究を行ってきました。

私が理解できないことは、マシンが95%のペイアウトレーティング(と言いましょう)を持つことを適切に保証する方法です。

だから、私はそれに22のスペースでリールを設定しています。16種類のシンボルでいっぱい。

乱数を取得し、64でmodを割り、剰余を取得したら、ループアップテーブルに移動して、仮想ストップとリールの位置との関係を確認します。

リールの停止方法がわかったので、ペイアウト率が正しいことを確認しますか?彼らが投入したドルごとに、マシンが.95セントを支払うことを確認するにはどうすればよいですか?

アイデアをありがとう。

私がアクションスクリプトで作業していますが、それが言語の問題に役立つ場合は、一般的には理論だけを探しています。

編集:彼らがより多くのトークンを購入してより多くプレイできるという事実にのみ関与するリアルマネーがあります。彼らが実際にペイラインのいずれかをヒットした場合、その人に支払われる実際のお金はありません。


2
これはビジネスクリティカルコードですか?
デイブO.

回答:


9

あなたが求めていることは確率論に関連しています。1つのリールで作業するのが最も簡単で、それがどのように機能するかを理解したら、それを複数のリールに拡張します。

リールがある場合、ストップに割り当てるシンボルがいくつかあるかどうかを検討してください。リール上のシンボルが多いほど、最終結果をより細かく制御できますが、プレイヤーにとってはよりランダムに感じられます。目標は、シンボルと停止の数のバランスをとることです。これにより、マシンがプレイヤーに無作為に感じられなくなり、チャンスが増えるようになります。

10個のシンボルと10個のストップがある場合、各シンボルは10分の1の確率で出現します。シンボルの順序は関係ありません(理論的には、実際のゲームのランダム性は、乱数ジェネレータと同じぐらい優れています)。言い換えると、10のスピンで10の異なるシンボル、またはすべてのスピンで異なるシンボルが表示されることを期待できます。特定のシンボルを1つ獲得できる確率は10分の1です。したがって、10スピンごとに、個々のシンボルが1回ずつ表示されることを期待できます。「勝つ」シンボルとして1つのシンボルを選択した場合、プレイヤーは勝つ前に10回プレイする必要があります。この情報があれば、支払いを計算するのは非常に簡単です。スピンごとに$ 1を請求する場合、勝つ前に$ 10を費やす必要があります。期待される評価が95%の場合、計算は$ 10 x 95%= $ 9.50になります。言い換えると、「勝つ」シンボルに着陸するための賞金は、95%の予想ペイアウトを得るために$ 9.50でなければなりません。これはすべて平均に基づいていることに注意してください。シンボルが正確に10スピンで表示される保証はありません。100または1000スピン、または1スピンだけで表示される場合もあります。マシンが平均して正しい金額を支払うのに十分な時間をかけて撮影されました。

これを複数のリールで機能させるには、各リールの勝率を乗算する必要があります。前の例のように、各リールに10個のシンボルがあり、各リールに1個の勝ちシンボルがある3つのリールの例を考えます。3つのリールすべてに同時に勝利のシンボルが表示されている場合にのみプレーヤーに勝利したいとします。これを行うには、各リールの確率を計算し、確率を掛け合わせる必要があります。前の例から、確率は10分の1であることがわかります。これは1/10、つまり0.1と書くこともできます。3つのリールすべてが同時に勝ちシンボルに着地する確率は、1/10 x 1/10 x 1/10、または0.1 x 0.1 x 0.1、または0.001、または1000分の1です。勝つシンボルが3つのリールすべてに同時に表示される確率が低くなります。プレイヤーは勝つ前に平均1000回スピンする必要があります。各スピンが1ドルの場合、勝つには1000ドルを費やす必要があります。勝率の計算は、$ 1000 x 95%** = $ 950.00です。

それが一言で言えば理論です。残りは、ゲームをより面白く見せるためにさまざまな確率のバランスをとることです。

あなたの場合、22のストップと16のシンボルがある場合。これは、少なくとも1つの他のシンボルと同じ6つのシンボルがあることを意味します。特定のシンボルが出現する正確な確率は、リールでのそのシンボルの出現回数の合計によって異なります。各リールにある各シンボルの数は実際にあなた次第です。

例として、15個の一意のシンボルと7個の重複するシンボルがあるとします。重複のいずれかが表示される確率は、22分の7、つまり7/22、つまり32%です。1リール、スピンが$ 1の場合、プレーヤーは100スピンで32回、複製の1つに着陸します。支払いは、(1 /(32/100))x 95%x $コストとして計算されます。したがって、スピンあたり1ドルの場合、重複が表示されるたびにプレーヤーに$ 2.97を支払うことになります。

別の例として、3つのリールがあり、スピンあたり2ドルかかる場合、次のようにペイアウトを計算します:(1 /(32/100 x 32/100 x 32/100))x 0.95 x $ cost = 30.5 x 95%x $ 2 = $ 57.95の支払い。他の非重複の確率は、次のように計算できます:(1 /(1/22 x 1/22 x 1/22))x 0.95 x $ cost = 10648 x 0.95 x $ 2 = $ 20231.20。これはかなりの数ですが、勝ったシーケンスが表示される確率はかなり低くなります(およそ9x10 ^ -5です)。

最後の例では、違いは非常に大きく、プレーヤーは$ 58を非常に頻繁に獲得するか、$ 20231を獲得することはほとんどありません。ゲームを魅力的なものにする方法は、さまざまな金額で勝利する機会を増やすことです。これは多くの場合、異なる確率のリールを混合することによって達成されます。だから各リールの代わりに
各シンボルの数が同じである場合、1つのリールに複数のシンボル、または1つのタイプのシンボルなどが含まれることがあります。確率の計算式は以前と同じです。各リールに正しい比率を使用することを忘れないでください。たとえば、22ストップでシンボルが3回出現するリールA、26ストップでシンボルが2回出現するリールB、20ストップでシンボルが5回出現するリールCがある場合、式は次のようになります。 (1 /(3/22 x 2/26 x 5/20))x 95%x $コスト。

これですべてです。うまくいけば、私は例であまり多くの間違いを犯さなかったので、あなたはそれがまだ役に立つと思うでしょう:

**表記上の注意、95%は0.95と同じです。32/100は0.32と同じ、7/22は0.31818と同じ。


すごい。あなたは私に多くの仕事を救ってくれました。私はスロットがどのように機能するかについて多くのドキュメントを読みましたが、この回答はそれを素人の言葉で本当に私に売りました。ありがとう!
スティーブン

7

あなたは欲しい期待値は 0.95であることを。簡単に言うと、これはprobability * payout各州の合計です。

総当たりの方法は、22 ^ 3のすべての状態を反復処理し(3つのリールがあると仮定)、支払いを合計し、合計を22 ^ 3で割ります。しかし、ほとんどの州はおそらく何も返済しないので、代わりに返済するすべての州を計算する方が簡単かもしれません。

たとえば、1リールに1ベルシンボルがある場合、確率は

[Bell] [Bell] [Bell]

1/22 ^ 3になります。そして、もしあなたがリールごとに2チェリーを持っているなら、その確率は

[Cherry] [Cherry] [any]

1/11 ^ 2になります。


編集:上記は、ペイアウトが望ましいリターン率を与えることを確認する方法のみを示しています。簡単な例として、1ドルを払って2枚のコインを投げるゲームを考えてみましょう。以下に、すべてが95の返品率を提供する3つの支払い方式を示します。

  1. 2つのヘッドは$ 3.80を支払い、他のすべては何も支払いません
  2. 2つの頭または2つの尾は$ 1.90を支払い、それ以外は何も支払いません
  3. 2つの頭は何も支払いません、他のすべては$ 1.26を支払います

どちらが「楽しい」ですか?教えてください...


そうは言っても、過去数十年の間に作られたスロットマシンはそのようなリールを回転させません。3つのベルがジャックポットを支払うと、実際のリールにいくつあっても、不釣合いに出てくるベルは少なくなります。

3
私は数学を処理するだけです-楽しいことは他の誰かの仕事です:)
セリオン

@joe-私は同意します、ベルはリールにあり、残りのシンボルよりも1トン少ないでしょう。@celionまだよくわかりません。リールがあり(5つある)、ユーザーがボタンを押してゲームをプレイするとします。次の5つの乱数を取得し、計算を行ってストップを見つけ、シンボルを表示します。ペイアウト率は乱数とストップにどのように影響しますか?リールにあるシンボルと、リールに含まれる高額から低額のシンボルの量によってペイアウトを設定しますか?
Kris.Mitchell、2011

@ Kris-Mitchell-スロットマシンの動作を誤解しているのかもしれません。考えられる結果ごとに、支払いは固定されていると想定しました。リールのシンボルが毎ラウンド変わる場合、計算は少し難しくなりますが、特定の状態の確率を(オフラインで、鉛筆と紙で)計算できるはずです。これは、一連の支払いが望ましい(平均)収益率を確実に提供する方法を提供します。その制約が与えられた場合、支払いを割り当てる方法は無数にあるので、「楽しい」ものを選ぶのはあなた次第です。
セリオン

@celion-私はあなたをミスリードするつもりはありませんでした、そして誰かがこれを読んでいるなら私が間違っていれば私を訂正しますが、支払いは修正されています。リールが毎ラウンド変わるとは思いません。ビデオスロットのリールは、真のメカニカルスロットマシンよりもはるかに大きいと思います。ちなみに、私はオプション2または3を最も楽しむと思います。2つは挑戦するのに十分なリスクがあり、失うことを知っていながらお金を稼ぐことができます。一方、3つは勝つ機会が多いように感じるので、より良いようです。
Kris.Mitchell

1

これを行うためのより簡単で信頼性の高い方法は、リールをシミュレートすることではなく、プレイヤーが勝つものを選択してリールを手続き的に配置する内部ダイを持っていることです(または、それらの大規模なセットをどこかに保存しますが、おそらくより時間がかかります作る)。


0

他の人はこのビットに触れていません:

..マシンがペイアウト評価を持つことを適切に保証する方法..

完全に乱数を使用する場合、確実な方法はありません。ただし、ペイアウトの統計を保持し、フィードバックループを使用して実行時にペイアウトの確率を調整できます

ペイアウトがしばらくない場合は、勝つ可能性を高め、逆もまた同様です。

フィードバックループが意図したとおりに機能することを確認するために、実行のシミュレーションを実行できます(20億回の反復で実行できます)。


1
ソリューションは不要です。完全な乱数ジェネレーター(RNG)は、時間とともに正確なペイアウトレーティングに近づきます。デフォルトの組み込みRNG関数の使用は(主に予測可能性が原因で)実際には受け入れられないことは事実ですが、正しい解決策はより優れたRNGを使用することです(例:en.wikipedia.org/wiki/Random_number_generation#Physical_methods)。また、ランダムではないゲームロジックを含める、または提案しているペイアウトレーティングを「微調整」することは、ほとんどの場所で違法です。ギミックのあるWebサイトには問題ありませんが、実際のアプリケーションにはまったく手がかりがありません。
ルークヴァン

1
@lukevanin、それは法的に他の場所で必要とされるので、それは実際にコンテキストを理解するケースです。
Peter Taylor

0

これまでのすべての回答は、使用するのに最適なRNGがあることを前提としています。純粋なソフトウェアRNGは、実際には疑似RNG、または略してPRNGです。これは、同じ入力値(シード)は常に同じ乱数列を生成するため、PRNGは本質的に予測可能であるためです。

もちろん、クライアント側で「true」と「pseudo」のRNGを区別することは、特にサンプルサイズが小さい場合は難しい問題ですが、違いがあります-お金と法的責任が関係するアプリケーションでは、チャンスを取る。RNGが必要な場合、RNGがないことよりも悪いのは、RNGが壊れていることを知らないことだけです。そのため、これは、会社が手抜きをしたり、その場で学習したりしてはならない1つの領域です。

優れたPRNGアルゴリズムはありますが、エントロピーの物理的なソースと一致することはありません。そのため、数学が理論上だけでなく実際にも機能するように、可能な限り最高のRNGを使用するようにしてください。法的にも金銭的にも、会社にとって最善のRNGです。


0

非常に単純なアプローチは、すべての可能なスピンの結果を反復し、収集された合計金額に対して、勝ちを合計することです。

まずホイールレイアウトを作成し、必要に応じてシンボルの複製を許可します。あなたが望む勝ちのパターンとペイアウトを決定します。総支払い額を決定するアルゴリズムを使用してホイールパターンを実行し、収集した金額で除算します。これがあなたの支払い率です。

高すぎる場合は、スペースを追加するか、支払額の少ないシンボルを追加するか、パターンの支払い額を下げます(つまり、3本のバーが$ 10または$ 5になる場合があります)。目的のペイアウト率が決定されるまでアルゴリズムを再実行します。

これにより、ペイアウトを均等に保つことができます(勝ったパターンでは$ 4.58ではなく、$ 5を使用できます)。正確なペイアウトは95%とは言えないかもしれませんが、調整することで近づくことができます。

次に、ホイールレイアウトの給与比率を決定するアルゴリズムの例を示します。

payout = 0.0
collected = 0.0
ratio = 0.0
bet = 1.0
FOREACH symbol1 IN wheel1
  FOREACH symbol2 IN wheel2
    FOREACH symbol3 IN wheel3
      payout = payout + DetermineWinnings(symbol1, symbol2, symbol3, bet)
      collected = collected + bet
    NEXT
  NEXT
NEXT
ratio = payout / collected
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.