2012-03-29 7 views
6

क्या समकक्ष मूल्य से उस जानकारी को निकालना संभव है?दो प्लस दो पोकर हाथ मूल्यांकनकर्ता पर, आप इसे पारित 7 में से सर्वश्रेष्ठ 5 कार्ड्स संयोजन कैसे प्राप्त करते हैं?

मुझे लगता है कि उच्च तुल्यता मूल्य बेहतर समझते हैं। समीकरण मूल्य से श्रेणी और रैंक भी निकाला जा सकता है। लेकिन क्या यह पता लगाने का एक तरीका है कि 7 से सबसे अच्छे 5 कार्ड्स संयोजन क्या हैं?

ट्वोप्लस्टो चारों ओर सबसे तेज़ पोकर हाथ मूल्यांकनकर्ता है (प्रति सेकंड 14-15 मिलियन हाथ मूल्यांकन)। आप इसे अपने 7 कार्ड देते हैं और यह एक हाथ समकक्ष मूल्य थूकता है। मूल्य जितना अधिक होगा, उतना ही बेहतर कार्ड होगा। ऊपर दिए गए लिंक का http://www.codingthewheel.com/archives/poker-hand-evaluator-roundup#2p2

कैश्ड संस्करण: http://web.archive.org/web/20130116102452/http://www.codingthewheel.com/archives/poker-hand-evaluator-roundup

+3

आप क्या दो प्लस टू पोकर हाथ मूल्यांकन है पर विस्तृत कर सकते हैं? – templatetypedef

+0

हाय templatetypedef, मैंने twoplustwo के लिंक के साथ सवाल अद्यतन किया है। – ian

+0

अभी भी समझ में नहीं आता है। 7 कार्ड हाथ से सबसे अच्छे 5 कार्ड? या कुछ और। – sblom

उत्तर

7

(अस्वीकरण: मुझे लगता है कि करता है, अन्य, हाथ मूल्यांकन के बीच एक पोकर सॉफ्टवेयर पर काम कर रहा हूँ)

आप इसे करने के लिए अपने 7 कार्ड देने के लिए और यह एक हाथ तुल्यता मूल्य बाहर थूक।

कई मूल्यांकनकर्ता ऐसा कर रहे हैं और यदि मुझे गलती नहीं है तो उनमें से कुछ प्रति सौ मिलियन से अधिक हाथ (!) की गणना करते हैं। ये मूल्यांकनकर्ता मूल रूप से एक विशाल सरणी में 7 सरणी लुकअप पर आते हैं और हाथों का मूल्यांकन करने के लिए केवल कुछ चक्र (कैश मिस के बावजूद) लेते हैं। मुझे नहीं लगता कि 14-15 लाख/सेकेंड सबसे तेज़ के पास कहीं भी है। यदि मैं गलत नहीं हूं तो कैक्टसकेव का मूल्यांकनकर्ता 10x तेज है।

कैसे आप 7 कि आप इसे करने के लिए पारित कर दिया से बाहर सबसे अच्छा 5 कार्ड संयोजन मिलता है:

अब आप अपने सवाल का जवाब देने?

खैर यह आप लेकिन नहीं बताता है एक बार तुम हाथ यह बहुत आसान हो सकता है की ताकत है: आप पहिया फिर से आविष्कार करने की जरूरत नहीं है।

आप अपने "सर्वश्रेष्ठ पांच में से पांच" गणना को सरल बनाने के लिए ताकत का उपयोग कर सकते हैं।

आप अन्य पुस्तकालयों का भी उपयोग कर सकते हैं, जिससे आप सीधे पांच सर्वश्रेष्ठ कार्ड (केवल उनकी ताकत के बजाय) दे सकते हैं या आप अपने पांच सर्वश्रेष्ठ कार्ड खोजने के लिए ताकत का उपयोग कर सकते हैं।

मैं केवल कुछ उदाहरण दे देंगे ...

  • तुम्हें पता है कि तुम एक पूरा घर ( एक "नाव" उर्फ) है, तो आप जानते हैं कि आप तीन कार्ड एक ही रैंक और फिर सबसे अच्छा जोड़ी है की तलाश कर रहे (यदि वहाँ दो हैं जोड़े, लेकिन आप कम से कम एक को खोजने के लिए निश्चित हैं, क्योंकि मूल्यांकनकर्ता ने आपको बताया कि आपके पास नाव है)।

  • आप जानते हैं कि आपके पास सीधा है: सर्वश्रेष्ठ कार्ड से शुरू होने वाले पांच कार्ड ढूंढें (विशेष व्हील केस केस से सावधान रहें)।

    आप सीधे के लिए थोड़ा फैनसीयर भी प्राप्त कर सकते हैं: आप हर संभव सीधी ताकत ले सकते हैं और मूल्यांकनकर्ता की शक्ति की तुलना कर सकते हैं। यदि यह मेल खाता है, तो दस-सीधे सीधे, फिर किसी भी टी, 9, 8, 7 और 6 कार्ड की तलाश करें (सूट से कोई फर्क नहीं पड़ता)।

  • तुम्हें पता है आप "नहीं जोड़ी" है: बस पाँच सबसे बड़ा पत्ता ले आप

  • लगता है आदि

केवल कुछ अलग खेमे हैं ... वे हो सकता है, उदाहरण के लिए:

NO_PAIR 
ONE_PAIR 
TWO_PAIRS 
SET 
STRAIGHT 
FLUSH 
FULL_HOUSE 
FOUR_OF_A_KIND 
STRAIGHT_FLUSH 

(आप निश्चित रूप से मध्यवर्ती "पहिया सीधे" और "पहिया सीधे, फ्लश" और "शाही फ्लश" मामलों बना सकते हैं अगर आप चाहते हैं, इत्यादि)

एक बार जब आप जानते हैं कि आपका हाथ किस प्रकार का हाथ है (तेज़ मूल्यांकनकर्ता का उपयोग करने के लिए धन्यवाद), बस उस कोड के टुकड़े पर स्विच करें जो उस विशेष हाथ के लिए सात में से पांच सर्वश्रेष्ठ पाता है ।

मुझे लगता है कि यह आगे बढ़ने का एक अच्छा तरीका है क्योंकि आप अल्ट्रा-फास्ट मूल्यांकनकर्ता का लाभ उठाते हैं और फिर यह आपके तर्क को बहुत सरल बनाता है।

स्टार्टअप पर, आप कंप्यूटिंग द्वारा strenth गणना करने के लिए एक बार उदाहरण के लिए, आवश्यकता होगी:

HIGHEST_NO_PAIR_HAND = ultraFastEvaluator("As Kd Qh Jc 9d 5s 2c"); 

HIGHEST_FULL_HOUSE = ultraFastEvaluator("As Ac Ad Kh Ks 8s 2h"); 

मैं निश्चित रूप से कर रहा हूँ यहाँ तार का उपयोग करने की वकालत नहीं कर। यह सिर्फ एक उदाहरण है ...

फिर आप प्रत्येक हाथ के लिए आप ढूंढना चाहते हैं सकता है वास्तविक पांच सर्वश्रेष्ठ:

  • तेजी मूल्यांकनकर्ता
  • यह है < = HIGHEST_NO_PAIR_HAND का उपयोग कर शक्ति की गणना?
    • हाँ: ले पाँच उच्चतम कार्ड
    • नहीं: यह < = HIGHEST_ONE_PAIR_HAND है? हां: उच्चतम जोड़ी लें + उच्चतम तीन कार्ड नहीं: क्या यह < = HIGHEST_TWO_PAIRS_HAND है?
      • आदि

तो मेरी राय में आप कि सीधे पाता पांच से सात या पूरी तरह से से बाहर सबसे अच्छा अपने स्वयं के पुनर्लेखन एक API का पुन: उपयोग सकता है, लेकिन अगर आप तेजी से मूल्यांकनकर्ता के परिणाम का उपयोग यह तेजी से जा रहा है फिर अपने तर्क को सरल बनाने के लिए।

संपादित टिप्पणी वहाँ जरूरी एक नहीं है कि ऐसा करने के लिए "सात में से पांच सबसे अच्छा" जिस तरह से। उदाहरण के साथ एसी एक सी केडी QH Qs 2c बोर्ड पर, के रूप में दोनों और "एसी सी केडी Qs के रूप में" "एसी सी केडी QH के रूप में" आर "पाँच सबसे अच्छा" (पिछले रानी के सूट कोई फर्क नहीं पड़ता) के लिए।

4

नहीं, यह है कि जानकारी निकालने के लिए संभव नहीं है

यहाँ twoplustwo पर एक बड़ा सारांश है। लुकअप टेबल में केवल समकक्ष मान होते हैं, जो हाथ प्रकार और रैंक में विभाजित होते हैं; कोई अन्य जानकारी संरक्षित नहीं है।

यदि आपको प्रति सेकंड लाखों हाथों का मूल्यांकन करने की आवश्यकता है और केवल रैंक के बजाय प्रत्येक के लिए विजेता हाथ प्राप्त करने की आवश्यकता है, तो आपको एक अलग मूल्यांकनकर्ता का उपयोग करने की आवश्यकता होगी। यदि आपको केवल जीतने वाले हाथ को शायद ही कभी निकालने की ज़रूरत है, तो आप इस मूल्यांकनकर्ता का उपयोग कर सकते हैं, और आवश्यक होने पर सर्वश्रेष्ठ 5 कार्ड खोजने के लिए धीमी विधि का सहारा ले सकते हैं।

+0

धन्यवाद निक! क्या मूल्यांकनकर्ता जीतने हाथ निकालने के लिए उपयोग करने के लिए पर कोई सुझाव? – ian

+0

नहीं वास्तव में, मैं @ian । मीटर डर एक काफी अनुभवहीन एक काम कर सकता है, लेकिन मैं वहाँ एक ठोस सुझाव नहीं है –

+1

@Nick जॉनसन:। * (मेरी anser देखें) * ... क्या मैं अपने खुद के पोकर सॉफ्टवेयर में किया था (मैं कहाँ करना दोनों मूल्यांकन जहाँ मैं सबसे अच्छा फाइव्स पता करने के लिए और फिर, शायद ही कभी, वास्तव में सबसे अच्छा फाइव्स seve से बाहर की क्या ज़रूरत है की जरूरत नहीं है) का एक बहुत, एक तेजी से हाथ मूल्यांकनकर्ता का परिणाम पुन: उपयोग करने तो खोजने के लिए प्रयोग विधि को सरल बनाने के लिए किया गया था सबसे अच्छा पांच से सात से बाहर (मेरा उत्तर देखें)। यह धीमी निश्चित रूप से है, लेकिन अपनी परीक्षण से यह तेज़ (और भी आसान हालांकि * शायद * थोड़ा अधिक शब्द) को फिर से लिखकर एक पूर्ण "सात में से पांच सबसे अच्छा" खरोंच से की तुलना में। :) – TacticalCoder

2

पुरानी पोस्ट लेकिन मैं इसे एक शॉट दे देंगे। यदि आप टेबल लुकअप का उपयोग कर रहे हैं (उदाहरण के लिए, उपरोक्त वर्णित 7-कार्ड सरणी, रे कपास विधि उर्फ), उसी स्लॉट स्थितियों में अपनी लक्षित जानकारी के साथ दूसरी तालिका बनाएं। उदाहरण: मैं अपने eval लगता है, अब मैं स्लॉट 167,452 में मेरे अन्य सरणी को देखेंगे मेरी 5-कार्ड हाथ लगाने के लिए स्लॉट 167,452 में समाप्त हो गया। पद के लिए सूट के लिए 2 और 4 -

है.एक कार्ड से 6 बिट द्वारा दर्शाया जा सकता। 30 बिट आपको पूरे 5-कार्ड वाले हाथ देंगे। शायद इतना आसान नहीं है, लेकिन यह सामान्य विचार है। मैंने थोड़ी देर पहले कुछ सामानों के लिए इस सटीक तकनीक का उपयोग किया है।

वैकल्पिक रूप से, आप सभी 7-चयन-5-कार्ड संयोजन प्रेषित कर सकता है (उन्हें मेरा मानना ​​है कि 21) और जो मूल eval से मेल खाता है पता लगाना।

संबंधित मुद्दे