まえがき
これはコードゴルフではありません。私は興味深い問題を検討しており、同僚からのコメントや提案を求めたいと思っています。この質問は カードのカウント (排他的)ではなく、観察に基づいて最適なテーブルを決定することです。ワーストケースの時間/スペースの複雑さ(任意の特定のアーキテクチャ)を人間の心に移植できるようにする、何らかの種類の脳インプラントがあると仮定します。はい、これはかなり主観的です。ワイルドカードを使用せずに フレンチデッキ を想定します。
背景
私は最近カジノを訪れ、テーブルあたりのプレーヤーよりも多くの傍観者を見ました。ほとんどの傍観者がプレーする資金(チップを持っている)を考えると、どの選択プロセスが傍観者を賭けプレーヤーに変えるのか疑問に思いました。
シナリオ
あなたはカジノに入ります。 n個のテーブルが ブラックジャック のバリアントを再生し、そのうちのy個が ポンツーン を再生しているのがわかります。各テーブルは ハウスアドバンテージ を難読化するために、不確定な量のカードデッキでプレーします。
各テーブルにはさまざまな最小ベットがあります。あなたはあなたの人にZ通貨を持っています。次の場所にあるテーブルを検索します。
問題
あなたは魔法のようにすべてのテーブルを観察することができます。決定の基礎となるために、サンプリングするXラウンドがあります。この目的のために、すべてのプレイヤーはプレイするのに30秒もかかりません。
この問題を解決するためにどのアルゴリズムを使用しますか?また、それらの最悪の場合の複雑さは何ですか?あなたは:
私はこれを「立っているギャンブラーの問題」と呼んでいます。お気軽にどうぞ。
追加
カジノにない場合、これはどこで役に立ちますか?
最終
魔法のギャンブルの弾丸を探しているのではありません。骨になって、脳が噛み止まらない問題に気づきました。私はカジノを訪れる以外の方法でアプリケーションに特に興味があります。
プレイ中でもすべてのテーブルを同時に検査できる場合:
すべてのゲームが単純化するために同じ速度で進行すると仮定すると...(私はこれを調整できます)
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
まだいくつかのバグがあり、すべてを説明しているわけではありませんが、あなたは私が行くところを手に入れます
勝利のチャンスにはまだまだたくさんあります
プレイヤーの数は最小限に適切である必要があります(より多くのプレイヤー==デッキをより速く燃やす)
プレーヤーが少ないということは、同時により多くのハンドをプレーできるということですか?(プレーヤー数に大きな重みが必要になります)
さらに、カウントしきい値はリスクアペタイトメーターで定義できます。