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


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.