알고리즘 : 가장 적합한 테이블 찾기 (도박꾼 문제)


11

머리말

이것은 코드 골프가 아닙니다. 흥미로운 문제를보고 있으며 동료들로부터 의견과 제안을 요청하기를 바라고 있습니다. 이 질문은 카드 계산 (독점)에 관한 것이 아니라 관찰에 따라 참여할 최상의 테이블을 결정하는 것입니다. 최악의 경우 시간 / 공간 복잡성을 (어떤 아키텍처에서든) 인간의 마음에 이식 할 수있게하는 일종의 뇌 임플란트를 가정 해 봅시다. 예, 이것은 매우 주관적입니다. 와일드 카드를 사용하지 않고 프랑스 데크 를 가정하십시오 .

배경

나는 최근에 카지노를 방문하여 테이블 당 플레이어보다 더 많은 방관자를 보았으며, 대부분의 방관자가 돈을 가지고 있다고 생각할 때, 방관자가 도박 플레이어로 바뀌는 선택 프로세스가 궁금했습니다.

대본

당신은 카지노에 들어갑니다. 당신은 볼 N 테이블의 변형 게임 블랙 잭 그들을 재생의 Y로, 교주를 . 각 테이블은 집의 이점 을 난독 화시키기 위해 결정되지 않은 양의 카드 데크로 재생됩니다 .

각 테이블에는 다양한 최소 베팅이 있습니다. 당신은 당신의 사람에 Z 통화가 있습니다. 다음 위치에서 테이블을 찾으려고합니다.

  • 가장 적은 양의 카드 데크가 사용 중입니다
  • 최소 베팅은 더 많은 덱을 사용하는 테이블보다 높지만 Z로 플레이 할 수있는 게임의 수를 최대화하려고합니다.
  • 플레이어 당 순 손실은 가장 낮습니다 (대부분의 답변에서는 부수적 인 노이즈로 간주되지만 깨진 셔플을 설명 할 수 있음을 알고 있습니다)

문제

모든 테이블을 마술처럼 관찰 할 수 있습니다. 결정을 내리기 위해 샘플링 할 X 라운드가 있습니다. 이를 위해 모든 플레이어는 30 초를 넘지 않습니다.

이 문제를 해결하기 위해 어떤 알고리즘을 사용 하시겠습니까? 최악의 경우는 무엇입니까? 당신은 :

  • Pontoon 또는 Blackjack?
  • 어떤 테이블을 선택합니까?
  • 카지노가 한 게임에 8 데크의 카드를 사용할 수 있다는 것을 감안할 때 얼마나 많은 라운드를 관찰해야합니까 (X의 가치는 무엇입니까)? 각 테이블에는 2-6 명의 플레이어가 있습니다.
  • 테이블을 찾는 동안 얼마나 오래 서 있었습니까?

나는 이것을 더 나은 용어가 없기 때문에 " 서있는 도박꾼 문제 " 라고 부릅니다 . 자유롭게 수정하십시오.

추가

카지노가 아니라면 어디에서 유용할까요?

결정적인

마법의 도박 총알을 찾고 있지 않습니다. 방금 뇌가 씹는 것을 멈추지 않는 뼈가 된 문제를 발견했습니다. 특히 카지노 방문 이외의 응용 프로그램에 관심이 있습니다.


흥미로운 질문. 이것이 이것이 올바른 사이트인지 확실하지 않습니다. 나는 왜 또는 어디에 더 잘 맞는지 모르겠다. 아마도 내가 틀렸을 수도있다.
Walter

@ Walter-나도 확실하지 않았다. 다양한 게임 전용 사이트가 있지만 해당 사이트의 사용자가 복잡성을 이해하거나 알고리즘을 이해하지 못할 수도 있습니다. 너무 '메타'이므로 여기에 집이 있는지 궁금합니다.
Tim Post

나는 그것이 포아송 프로세스처럼 들리는 것을 모른다. 아마도 math.stackexchange.com의 사람들이 알고있을 것입니다.
콘래드 프릭스

아마도 @Conrad 일 것입니다. 그러나, 나는 여기 누군가가 몇 가지 아이디어를 가지고 있다고 의심하여, 처음에 질문하는 것에 대한 나의 토론을 끝냈습니다 :)
Tim Post

1
미안하지만 문제 진술조차 보지 못했습니다. 나는 문제가 승리를 극대화하는 것이라고 가정 할 수 있으며, 당신이 묻는 질문은 알고리즘에 중요하지 않습니다. 나는 얼마나 많은 라운드를 관찰하든 상관 없으며, 집에 모서리가 생길 때까지 관찰 한 다음 그 모서리를 밉니다. 가장자리가있을 때까지 항상 기다릴 수 있고 항상 가장 좋은 가장자리가있는 테이블로 테이블을 전환하면 알고리즘이 매우 간단합니다.
Jeremy

답변:


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.