파이썬에서 빠른 포커 핸드 평가를 고려하고 있습니다. 프로세스 속도를 높이는 한 가지 방법은 모든 카드 얼굴과 양복을 소수로 표현하고 손을 표현하기 위해 함께 곱하는 것입니다. 오순절 :
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]
이것은 모듈로를 통해 손에 몇 명의 왕이 있는지 또는 얼마나 많은 마음을 말해 줄 수있는 숫자 값을 각 손에 줄 것입니다. 예를 들어, 클럽이 5 개 이상인 손은 2 ^ 5로 균등하게 나눕니다. 네 왕이있는 손은 59 ^ 4 등으로 균등하게 나눕니다.
문제는 AcAdAhAsKdKhKs와 같은 7 장의 카드 핸드가 약 62.7 조의 해시 값을 가지며 내부적으로 표현하는 데 32 비트 이상이 소요된다는 것입니다. 파이썬에 산술 연산을 수행 할 수있는 많은 수의 파이썬을 저장하는 방법이 있습니까?