나는이 게임에서 돈을 얻었는지 또는 느슨하게했는지 알아보기 위해 다음 함수에 1000 번 중재하고 싶습니다.확률 주사위 게임 두 개의 오지로 파이썬에서
게임은 당신이 주사위를 던져 돈을 돌려 받거나 돈을 잃어 버리도록 설계되었습니다. 우리가 5 코인으로 시작한다고 가정 해 봅시다.
을 내고, 동전을 산출한다.
을 던지면 동전이 나온다.
을 내면, 0.5 동전이 나온다.
9,8 또는 7을 던지면 아무 것도 산출되지 않습니다. 던지는
6,5,4,3,2 또는 1동전의 당신의 양에서0.5 동전을 공제.
이 내 구현은 지금까지 모습입니다 : 내가 이것을 달성하는 방법에 대한 더 우아한 해결책이 있어야한다는 인식 때문에
def luckCalc():
amount = 5
# if 12 then 1/36 chance
if random.randrange(1,7) == 6 and random.randrange(1,7) == 6:
amount = amount + 1.5
# if 11 then 2/36 chance
elif (random.randrange(1,7) == 5 and random.randrange(1,7) == 6) or (random.randrange(1,7) == 6 and random.randrange(1,7) == 5):
amount = amount + 1
# if 10 then 3/36 chance
elif (random.randrange(1,7) == 5 and random.randrange(1,7) == 5) or (random.randrange(1,7) == 4 and random.randrange(1,7) == 6) or (random.randrange(1,7) == 6 and random.randrange(1,7) == 4):
amount = amount + 0.5
# if 9,8,7
# 4/36 + 5/36 + 6/36 chance
# 1+6, 2+5, 3+4, 4+3, 5+2, 6+1 chance
# 2+6, 3+5, 4+4, 5+3, 6+2 chance
# 3+6, 4+5, 5+4, 6+3 chance
# then no change in amount
# if 6,5,4,3,2,1
# chances...
# then amount -0.5
return amount
# Iterate over the dice throwing simulator and calculate total
total = 0.0
for a in range(1000):
total = total + luckCalc()
print (total)
내가, 함수의 끝으로 코딩을 중단했다. 어떤 재미있는 제안이라도,이 몬테카를로는 계속 듣고 있니?
현재 루틴 "다시 롤"각'if' 문에 대해 주사위입니다. 'roll = random.randrange (1,7) + random.rangerange (1,7) '로 시작한 다음 그걸 테스트 해보십시오. luckCalc를 통해 매번 금액을 외부로 추적하지 않고 재설정합니다. 또한 11은 무엇을합니까? – jonrsharpe
글쎄, 당신의 예리한 눈이 논리적 인 구멍을 발견했다. - 11을 더했습니다. – nottinhill