मैं पायथन में तेजी से पोकर हैंड मूल्यांकन पर विचार कर रहा हूं। यह मेरे लिए हुआ कि प्रक्रिया को गति देने का एक तरीका यह होगा कि सभी कार्ड चेहरों और सूटों को अभाज्य संख्याओं के रूप में दर्शाया जाए और हाथों को दर्शाने के लिए उन्हें एक साथ गुणा किया जाए। सफेद करने के लिए:
class PokerCard:
faces = '23456789TJQKA'
suits = 'cdhs'
facePrimes = [11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 53, 59, 61]
suitPrimes = [2, 3, 5, 7]
तथा
def HashVal(self):
return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
इससे प्रत्येक हाथ को एक संख्यात्मक मूल्य मिलेगा, जो कि modulo के माध्यम से मुझे बता सकता है कि कितने राजा हाथ में हैं या कितने दिल हैं। उदाहरण के लिए, इसमें पाँच या अधिक क्लबों के साथ कोई भी हाथ समान रूप से 2 ^ 5 से विभाजित होगा; चार राजाओं के साथ कोई भी हाथ 59 ^ 4, आदि द्वारा समान रूप से विभाजित होगा।
समस्या यह है कि AcAdAhAsKdKhKs की तरह सात-कार्ड हाथ में लगभग 62.7 क्वाड्रिलियन का हैश मूल्य है, जो आंतरिक रूप से प्रतिनिधित्व करने के लिए 32 बिट्स से अधिक का समय लगेगा। क्या पायथन में इतनी बड़ी संख्या में स्टोर करने का एक तरीका है जो मुझे इस पर अंकगणितीय संचालन करने की अनुमति देगा?