आपके मित्र ने आपको अंतिम समय में एक उच्च-दांव पोकर गेम के लिए आमंत्रित किया और, एक कंप्यूटर वैज्ञानिक के रूप में, आपने खेल पर बढ़त हासिल करने के लिए अपने कौशल का उपयोग करने का निर्णय लिया है। आपका काम होगा, दिया गया 2 cards
(आपका हाथ) और 0, 3, 4 or 5 cards
(निपटाए गए कार्ड), आपको यह तय करना होगा कि आपको जो सबसे अच्छा हाथ मिल सकता है वह क्या होगा। यदि सभी 7 कार्ड तर्क के रूप में दिए गए हैं, तो उत्तर बहुत स्पष्ट है। यदि कम दिया जाता है, तो समस्या अधिक जटिल हो जाती है। हालाँकि, यह आपके लिए वह बढ़त देने के लिए पर्याप्त नहीं है, जिसे आप अपने विरोधियों के साथ-साथ क्या हो सकता है, यह समझने के लिए आपको शेष कार्ड से सर्वोत्तम संभव हाथ की गणना भी करनी होगी।
होल्डम रिफ्रेशर
यदि आप होल्डम के बारे में नहीं जानते हैं, तो खेल में प्रत्येक खिलाड़ी 2 कार्ड के साथ अपने 'हाथ' के रूप में शुरू करता है। 3 'टर्न' के दौरान, अतिरिक्त कार्ड सभी खिलाड़ियों के बीच साझा किए जाते हैं। पहली बारी, 3 कार्ड सामने आए हैं। दूसरा, 1 और, और तीसरी बार एक अंतिम कार्ड सामने आया है। पहले दिए गए दो कार्ड आपके हाथ का प्रतिनिधित्व करते हैं, जबकि उत्तरार्द्ध 0, 3, 4, या 5 कार्डों का प्रतिनिधित्व करता है जो क्रमिक मोड़ द्वारा दिए गए हैं।
संभावित संख्या:
[2,3,4,5,6,7,8,9,T(10),J,Q,K,A]
संभव सूट:
[S,C,H,D]
पूर्ण डेक:
[2S,3S,4S,5S,6S,7S,8S,9S,TS,JS,QS,KS,AS, # Spades.
2C,3C,4C,5C,6C,7C,8C,9C,TC,JC,QC,KC,AC, # Clubs.
2H,3H,4H,5H,6H,7H,8H,9H,TH,JH,QH,KH,AH, # Hearts.
2D,3D,4D,5D,6D,7D,8D,9D,TD,JD,QD,KD,AD] # Diamonds.
हाथ रैंकिंग:
1:Royal Flush (A-K-Q-J-10, all from the same suit).
2:Straight Flush (Sequential cards, all from the same suit).
3:Four-of-a-Kind (Self explanatory).
4:Full House (3-of-a-kind and a 2-of-a-kind).
5:Flush (All cards are from the same suit).
6:Straight (Sequential Cards, any suits).
7:3-of-a-Kind (Self explanatory).
8:2-Pair (Double 2-of-a-Kind).
9:Pair (2-of-a-Kind).
10:High Card (You have absolutely nothing except a single card).
चलो एक उदाहरण लेते हैं या दो और उनके माध्यम से चलते हैं:
सरल उदाहरण:
[AS, AC],[AH,AD,9S,9C,9H]
-> 3
(फोर-ए-काइंड), 3
(फोर-ए-किंड)
इस सेटअप में आपके पास सबसे अच्छा संभव हाथ चार तरह का हाथ होगा। आपके विरोधियों के लिए सबसे अच्छा संभव हाथ 4-का-एक प्रकार का हो सकता है, क्योंकि आपके पास उनके 2-कार्ड हाथों में KQJ10 नहीं हो सकता है।
[5C,2C],[6C,4C,JH,JD]
-> 2
(सीधा फ्लश), 3
(4-ए-काइंड)
आप एक सीधे फ्लश के लिए जोखिम में हैं, लेकिन क्योंकि आपके हाथ में 2 / 5C है, कोई और नहीं आप दोनों मध्यम कार्ड रखने के कारण है। सर्वश्रेष्ठ वे उम्मीद कर सकते हैं कि 2 जेब वाले जैक हैं और फ्लॉप पर एक जैक प्राप्त कर रहे हैं।
[JS,JC],[]
-> 1
(रॉयल फ्लश), 1
(रॉयल फ्लश)
उनके खिलाफ आपके द्वारा उपयोग की गई कोई भी जानकारी नहीं दी गई है, आप सभी को बता सकते हैं कि इस समय वे केवल हीरे / दिलों में एक शाही फ्लश कर सकते हैं, लेकिन यह केवल संभव है कि आप शाही फ्लश प्राप्त करें जैसा कि वे करते हैं। वास्तव में, सभी इनपुट जहां फ्लॉप होने के लिए अभी तक 1-1 उत्तर में परिणाम होना चाहिए।
[2C,4S],[3C,7S,9D,AH,JD]
-> 10
(हाई कार्ड), 7
(3-ए-काइंड)
यह एक ऐसा उदाहरण है जहां आप बिल्कुल खराब हो गए हैं, और नदी को दिए गए सीधे या फ्लश की कोई संभावना नहीं है। मतलब यहां सबसे अच्छा हाथ जेब इक्के है जिसके परिणामस्वरूप 3-ए-काइंड है।
मैं / हे आवश्यकताएँ
- आपके हाथ में क्या है और सार्वजनिक ज्ञान क्या है के बीच इनपुट को अलग किया जाना चाहिए; यह कार्यान्वयन की परवाह किए बिना इस तरह से आसान होगा।
- कार्ड ट्यूपल्स या तार हो सकते हैं, आपके ऊपर।
- हैंड एंड द प्लेइंग फील्ड एरेज़ या सीमांकित स्ट्रिंग्स हो सकता है।
- आउटपुट मेरे द्वारा प्रदान किए गए हाथों की सूची से दो अनुक्रमित होना चाहिए (जैसे [2,1])।
- इसे एक फ़ंक्शन के हिस्से के रूप में वापस किया जा सकता है, जो एक उपयुक्त तरीके से कंसोल या आउटपुट पर मुद्रित होता है।
- दो अलग-अलग मूल्य होने चाहिए, एक आपके सर्वोत्तम हाथ के लिए, दूसरा सर्वोत्तम संभव के लिए।
- 10 को एक
T
या एक के रूप में दर्शाया जा सकता है10
, जो भी आपके लिए समझ में आता है। - मानक खामियों को अस्वीकार कर दिया जाता है।
जीत का मानदंड
- यह कोड-गोल्फ , पोस्ट डेट के टाई-ब्रेकर के साथ सबसे कम बाइट-काउंट है।
A
और एक के साथ एक डेक कभी नहीं देखा है 1
। बाकी सब कुछ अच्छा लग रहा है।
A
और1
संभव अनुमति कार्ड में से एक नहीं होना चाहिए ? इसके अलावा, मुझे नहीं लगता कि सांख्यिक मूल्यों जैसे चेहरे के संक्षिप्तीकरण की आवश्यकता के लिए वास्तव में एक सम्मोहक कारण है11
।