アルゴリズム:プレイに最適なテーブルを見つける(スタンディングギャンブラーの問題)


11

序文

これはコードゴルフではありません。私は興味深い問題を見て、同僚からのコメントや提案を求めています。この質問は(排他的に)カードのカウントに関するものではなく、観察に基づいて最適なテーブルを決定することに関するものです。最悪の場合の時間/空間の複雑さ(任意のアーキテクチャ)を人間の心に移植可能にする何らかの種類の脳移植を行うと仮定します。はい、これは非常に主観的です。ワイルドカードを使用せずにフランスのデッキを想定します。

バックグラウンド

私は最近カジノを訪れ、テーブルごとのプレーヤーよりも多くの傍観者を見ました。ほとんどの傍観者がプレイする資金を持っているので、どの選択プロセスが傍観者を賭けプレーヤーに変えたのか疑問に思いました。

シナリオ

あなたはカジノに入ります。n個のテーブルがブラックジャックのバリアントをプレーし、そのうちy個がポンツーンをプレーしています。各テーブルは、ハウスアドバンテージをわかりにくくするために、不確定な量のカードデッキでプレイします。

各テーブルにはさまざまな最小ベットがあります。あなたはあなたの人にZ通貨を持っています。次の場所にあるテーブルを検索します。

  • 使用中のカードデッキの最小量
  • 最小ベットは、より多くのデッキを使用するテーブルよりも高くなりますが、Zでプレイできるゲームの量を最大化する必要があります。
  • プレーヤーごとの純損失は最小です(ほとんどの答えでは、これは偶発的なノイズと見なされますが、シャッフルが壊れていることを示している可能性があります)

問題

すべてのテーブルを魔法のように観察できます。決定の基礎とするために、サンプリングするXラウンドがあります。この目的のために、すべてのプレイヤーがプレイするのに30秒以上かかりません。

この問題を解決するためにどのアルゴリズムを使用しますか?また、最悪の場合の複雑さは何ですか?あなたは:

  • ポンツーンまたはブラックジャックをプレイしますか?
  • どのテーブルを選択しますか?
  • カジノがどちらのゲームでも8デッキ以下のカードしか使用できない場合、何ラウンドを観察する必要がありますか(Xの値は何ですか)。各テーブルには2〜6人のプレイヤーがいます。
  • テーブルを見つけている間、どのくらいの時間待ちましたか?

より良い用語がないため、これを「スタンディングギャンブラー問題」と呼んでいます。自由に調整してください。

追加

カジノでない場合、これはどこで役立つでしょうか?

最後の

私は魔法のギャンブルの弾丸を探していません。私はちょうど私の脳が噛むのをやめない骨になる問題に気づいた。私は特に、カジノを訪れる以外の用途に興味があります。


興味深い質問。これが適切なサイトかどうかはわかりません。なぜ、どこでうまくフィットするのかわからない、ちょうどここでは感じられない。おそらく私は間違っている
ウォルター

@Walter-私も確信がありませんでした。さまざまなゲーム専用のサイトがありますが、それらのサイトのユーザーが複雑さやアルゴリズムとは何かを理解しているとは考えられません。SOには「メタ」すぎます。ここで家を見つけることができるかどうか疑問に思っています。
ティムポスト

それがポアソン過程のように聞こえるかどうかはわかりません。たぶん、math.stackexchange.comの人々は知っているかもしれません。
コンラッドフリックス

@コンラッド、おそらく。しかし、ここで私容疑者誰かが最初の場所:)に質問をしての私の議論を終了した、いくつかのアイデアを持っているかもしれません
ティム・ポスト

1
申し訳ありませんが、問題の説明は表示されません。私は問題が賞金を最大化することであると仮定することができます、そして、あなたが尋ねる質問はアルゴリズムにとって重要ではありません。私が何ラウンドを観察するかは気にしません。家に対してエッジができるまで観察し、そのエッジを押します。エッジができるまで常に待機し、常にテーブルを最適なエッジを持つテーブルに切り替えることができる場合、アルゴリズムは非常に簡単です。
ジェレミー

回答:


2

プレイ中であってもすべてのテーブルを同時に調べることができる場合:
単純化のためにすべてのゲームが同じ速度で進行することを考えると...(これに合わせて調整できます)


while(not satisfied with winnings)
 keepcurrenttable == 1 || Wait for positive count threshold on any one table  
  if Z/(min bet)>%chance of win*payout  
    next  
  else  
    Play hand according to standard counting rules.  
  endif
if (%chance of win on another table*payout on another table > same for current) && Z/(min bet)>%chance of win*payout
  change tables  
 elseif currenttable %chance of win*payout >
  keepcurrenttable=1
 else
  keepcurrenttable=0
 endif
next

まだいくつかのバグがあり、すべてを説明していませんが、あなたは私が行く場所を取得します

勝つチャンスはもっとたくさんあります

プレイヤーの数は最小限にとどめる必要があります(プレイヤーが多い==デッキをより速く燃やす)

プレイヤーが少ないということは、より多くのハンドを同時にプレイできるということですか?

さらに、リスク選好メーターでカウントのしきい値を定義できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.