Thuật toán: Tìm bảng tốt nhất để chơi (vấn đề con bạc đứng)


11

Lời nói đầu

Đây không phải là mã golf. Tôi đang xem xét một vấn đề thú vị và hy vọng thu hút ý kiến ​​và đề xuất từ ​​các đồng nghiệp của tôi. Câu hỏi này không phải là về việc đếm thẻ (độc quyền), mà là về việc xác định bảng tốt nhất để tham gia dựa trên quan sát. Giả sử nếu bạn sẽ thực hiện một số loại cấy ghép não khiến cho sự phức tạp về thời gian / không gian trong trường hợp xấu nhất (trên bất kỳ kiến ​​trúc cụ thể nào) có thể di chuyển đến tâm trí con người. Vâng, điều này khá chủ quan. Giả sử một bộ bài Pháp mà không sử dụng thẻ hoang dã.

Lý lịch

Gần đây tôi đã ghé thăm một sòng bạc và thấy nhiều người ngoài cuộc hơn người chơi trên mỗi bàn và tự hỏi quá trình lựa chọn nào đã biến người ngoài cuộc thành người chơi cá cược, vì hầu hết những người ngoài cuộc đều có tiền để chơi (chip trong tay).

Kịch bản

Bạn vào một sòng bạc. Bạn thấy n bàn chơi một biến thể của Blackjack , với y trong số họ chơi Pontoon . Mỗi bàn chơi với số lượng cỗ bài không xác định, trong nỗ lực che giấu lợi thế nhà cái .

Mỗi bảng có mức đặt cược tối thiểu khác nhau. Bạn có tiền Z trên người của bạn. Bạn muốn tìm bảng trong đó:

  • Số lượng thẻ bài ít nhất đang được sử dụng
  • Đặt cược tối thiểu cao hơn một bàn sử dụng nhiều sàn hơn, nhưng bạn muốn tối đa hóa số lượng trò chơi bạn có thể chơi với Z.
  • Thiệt hại ròng, trên mỗi người chơi là thấp nhất (tôi nhận ra rằng, trong hầu hết các câu trả lời, được coi là tiếng ồn ngẫu nhiên, nhưng nó có thể minh họa một trình trộn xáo trộn bị hỏng)

Vấn đề

Bạn có thể kỳ diệu quan sát mọi bàn. Bạn có vòng X để lấy mẫu, để đưa ra quyết định. Với mục đích này, mỗi người chơi chỉ mất không quá 30 giây để chơi.

Thuật toán nào bạn sẽ sử dụng để giải quyết vấn đề này, và trường hợp phức tạp nhất của chúng là gì? Bạn có

  • Chơi Pontoon hay Blackjack?
  • Bạn chọn bảng nào?
  • Bạn cần bao nhiêu vòng để quan sát (giá trị của X) là bao nhiêu, với điều kiện sòng bạc có thể sử dụng không quá 8 bộ bài cho cả hai trò chơi? Mỗi bàn có từ 2 đến 6 người chơi.
  • Bao lâu bạn đứng xung quanh trong khi tìm một cái bàn?

Tôi gọi đây là " vấn đề con bạc thường trực " vì thiếu một thuật ngữ tốt hơn. Xin vui lòng tinh chỉnh nó.

Bổ sung

Điều này sẽ hữu ích ở đâu nếu không phải trong một sòng bạc?

Sau cùng

Tôi không tìm kiếm một viên đạn đánh bạc ma thuật. Tôi chỉ nhận thấy một vấn đề đã trở thành xương mà não tôi đơn giản là không ngừng nhai. Tôi đặc biệt quan tâm đến các ứng dụng ngoài việc đến thăm một sòng bạc.


Thú vị quesiton. Tôi không chắc đây là trang web phù hợp cho việc này. Tôi không biết tại sao hoặc nơi nào phù hợp hơn, nó chỉ không cảm thấy ở đây. Có lẽ tôi đã sai ...
Walter

@Walter - Tôi cũng không chắc. Có những trang dành riêng cho nhiều trò chơi khác nhau, nhưng không có khả năng người dùng của những trang đó hiểu được sự phức tạp hoặc thậm chí thuật toán là gì. Nó quá 'meta' cho SO, tôi tự hỏi liệu nó có thể tìm được nhà ở đây không.
Tim Post

Tôi không biết nó nghe có vẻ giống như một quá trình Poisson. Có lẽ những người ở math.stackexchange.com có ​​thể biết.
Conrad Frix

@Conrad, có lẽ. Tuy nhiên, tôi nghi ngờ ai đó ở đây có thể có một số ý tưởng, kết thúc cuộc tranh luận của tôi về việc đặt câu hỏi ngay từ đầu :)
Tim Post

1
Xin lỗi, nhưng tôi thậm chí không thấy một tuyên bố vấn đề. Tôi chỉ có thể giả định rằng vấn đề là tối đa hóa tiền thắng, sau đó các câu hỏi bạn hỏi không quan trọng đối với thuật toán. Tôi không quan tâm tôi quan sát được bao nhiêu vòng, tôi chỉ quan sát cho đến khi tôi có một cạnh vào nhà và sau đó tôi đẩy cạnh đó. Nếu tôi luôn có thể đợi cho đến khi tôi có một cạnh và luôn chuyển các bảng sang bảng có cạnh tốt nhất thì thuật toán rất đơn giản.
Jeremy

Câu trả lời:


2

Nếu tôi có thể kiểm tra đồng thời tất cả các bảng ngay cả khi đang chơi thì:
Cho rằng tất cả các trò chơi tiến triển với cùng tốc độ cho đơn giản ... (tôi có thể điều chỉnh cho việc này)


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

vẫn còn một số lỗi trong đó và không tính đến MỌI THỨ, nhưng bạn sẽ đến nơi tôi sẽ đến

Có rất nhiều để% cơ hội chiến thắng

số lượng người chơi nên được tối thiểu thích hợp (nhiều người chơi hơn == đốt cháy nhanh hơn qua các sàn)

Có ít người chơi hơn có nghĩa là tôi có thể chơi nhiều tay hơn không? (điều đó đòi hỏi trọng lượng nặng hơn về số lượng người chơi)

ngoài ra, ngưỡng đếm có thể được xác định bằng đồng hồ đo rủi ro.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.