포커 핸드 평가를 위해 Python에서 큰 숫자 저장 및 작업
Python에서 포커 핸드 평가를 최적화하려면 카드 앞면과 수트를 다음과 같이 곱합니다. 소수는 효율적으로 손을 표현하고 모듈로 연산을 사용하여 값을 빠르게 계산할 수 있습니다. 그러나 7장의 손을 나타내는 숫자는 32비트 정수의 제한을 초과할 수 있습니다.
Python의 Bignum 유형
Python은 다음과 같은 "bignum" 정수 유형을 제공합니다. Python 2.5에서는 long 이고 Python 3.0에서는 int 입니다. 이는 임의로 큰 숫자를 사용한 작업을 허용합니다. 필요한 경우 정수에 대해 수행되는 연산이 자동으로 bignum 유형으로 전환되어 큰 값을 원활하게 처리할 수 있습니다.
구현 예
질문에 제공된 PokerCard 클래스를 고려하면, 다음 코드는 큰 손 값에 대한 산술 연산을 저장하고 수행하는 방법을 보여줍니다.
class PokerCard: # Prime representations of card faces and suits 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] hand = [PokerCard("A", "c"), PokerCard("A", "d"), PokerCard("A", "h"), PokerCard("A", "s"), PokerCard("K", "d"), PokerCard("K", "h"), PokerCard("K", "s")] # Create a 7-card hand handValue = 1 for card in hand: handValue *= card.HashVal() # Multiply prime values of cards together print(handValue) # Output the large hand value
이 코드 bignum 유형을 활용하여 손을 나타내는 소수 값을 저장하고 곱합니다. 자동으로 bignum 유형으로 전환함으로써 Python은 결과 손 값을 표현하고 조작할 수 있도록 보장합니다.
위 내용은 Python에서 포커 핸드를 평가할 때 큰 숫자를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!