Algoritmalar: Oynamak için en iyi masayı bulun (kumarbaz sorunu)


11

önsöz

Bu kod golf değil. İlginç bir soruna bakıyorum ve akranlarımdan yorum ve öneriler istemeyi umuyorum. Bu soru kart sayma (münhasıran) ile ilgili değildir , daha ziyade, gözlemlere dayanacak en iyi tablonun belirlenmesiyle ilgilidir. En kötü zaman / mekan karmaşıklığını (herhangi bir mimaride) insan zihnine taşınabilir yapan bir tür beyin implantı yapacağınızı varsayalım. Evet, bu oldukça öznel. Joker kart kullanmadan bir Fransız güvertesi varsayalım .

Arka fon

Geçenlerde bir kumarhaneyi ziyaret ettim ve masa başına oyunculardan daha fazla seyirci gördüm ve çoğu seyircinin oynayabileceği para (el fişleri) olduğu göz önüne alındığında, hangi seçim sürecinin seyircileri bahis oyuncularına dönüştürdüğünü merak ettim.

senaryo

Bir kumarhaneye girersiniz. Blackjack'in bir varyantını oynayan n masasını görüyorsunuz ve bunların bir tanesi Pontoon oynuyor . Her masa, evin avantajını gizlemek için belirsiz miktarda kart destesiyle oynar .

Her tablonun değişen bir minimum bahsi vardır. Kişinin üzerinde Z para birimi var. Aşağıdaki tabloyu bulmak istiyorsunuz:

  • En az kart destesi kullanımda
  • Minimum bahis, daha fazla deste kullanan bir masadan daha yüksektir, ancak Z ile oynayabileceğiniz oyun miktarını en üst düzeye çıkarmak istiyorsunuz.
  • Oyuncu başına net kayıplar en düşüktür (bunun çoğu cevapta tesadüfi gürültü olduğu kabul edilir, ancak kırık bir karıştırıcıyı gösterebilir)

Sorun

Her masayı sihirli bir şekilde gözlemleyebilirsiniz. Kararınızı temel almak için örneklemek için X turunuz var. Bu amaçla, her oyuncunun oynaması 30 saniyeden fazla sürmez.

Bu sorunu çözmek için hangi algoritmaları kullanırsınız ve en kötü durum karmaşıklığı nedir? Yapıyor musun:

  • Duba mı Blackjack mi oynuyorsun?
  • Hangi tabloyu seçiyorsunuz?
  • Kumarhanenin her iki oyun için 8 desteden fazla kart kullanamayacağı göz önüne alındığında, kaç tur gözlemlemeniz gerekir (X'in değeri nedir)? Her masada 2 ila 6 oyuncu vardır.
  • Masa bulurken ne kadar süre durdun?

Ben daha iyi bir terim eksikliği için " ayakta kumar sorunu " diyorum . Lütfen rafine etmekten çekinmeyin.

Ek

Bir kumarhanede olmasaydı bu nerede yararlı olurdu?

final

Sihirli bir kumar mermisi aramıyorum. Beynimin çiğnemeyi durduramayacağı bir kemik haline gelen bir problem fark ettim. Özellikle bir kumarhaneyi ziyaret etmenin ötesinde uygulamalarla ilgileniyorum.


İlginç bir soru. Bunun için doğru site olduğundan emin değilim. Neden veya nereye daha iyi uyacağını bilmiyorum, tam burada hissetmiyor. Belki yanılıyorum ...
Walter

@Walter - Ben de emin değildim. Çeşitli oyunlara adanmış siteler var, ancak bu sitelerin kullanıcılarının karmaşıklığı ve hatta bir algoritmanın ne olduğunu anlaması pek olası değil. SO için çok 'meta', burada bir ev bulup bulamayacağını merak ediyorum.
Tim Post

Bir Poisson süreci gibi geldiğini bilmiyorum. Belki math.stackexchange.com'daki insanlar biliyor olabilir.
Conrad Frix

@Conrad, belki. Ancak, ben :) ilk etapta soruyu soran benim tartışmayı sona eren bazı fikirler, olabilir burada birini şüpheli
Tim Mesaj

1
Üzgünüm, ama bir sorun bildirimi bile göremiyorum. Sadece sorunun kazançları en üst düzeye çıkarmak olduğunu varsayabilirim, o zaman sorduğunuz sorular algoritma için önemli değildir. Kaç tur gözlemlediğim umurumda değil, sadece eve karşı bir kenar olana kadar gözlemliyorum ve sonra o kenarı itiyorum. Bir kenarı olana kadar her zaman bekleyebilir ve tabloları her zaman en iyi kenara sahip tabloya geçirirsem algoritma çok basittir.
Jeremy

Yanıtlar:


2

Oynarken bile tüm tabloları aynı anda inceleyebilirsem:
Tüm oyunların basitlik için aynı hızda ilerlediği göz önüne alındığında ... (bunun için ayarlayabilirim)


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

hala bazı hatalar var ve her şeyi hesaba katmıyor, ama gittiğim yere geliyorsun

% kazanma şansı çok daha fazla

Oyuncu sayısı minimum düzeyde olmalıdır (daha fazla oyuncu == destelerde daha hızlı yanma)

daha az oyuncu eşzamanlı olarak daha fazla el oynayabileceğim anlamına mı geliyor? (oyuncu sayısında daha fazla ağırlık gerektirir)

ayrıca, sayım eşiği bir risk iştah ölçer ile tanımlanabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.