[ptyhon] 카지노를 붕괴시킬 것 같은 몬테카로 방법을 모의했습니다.
서장
큰일났다.예.
쉬는 날 나른하게 유튜브를 보는 영상은 추천한다.
https://youtu.be/_suZM2y9wyA
요즘 스튜어트의 실황 애니메이션만 보는데 갑자기 이런 영상이 나와서 깜짝 놀랐어요.
평소 볼 수 없는 장르의 애니메이션이 추천되면'포키'느낌이 든다.
이 사람이 말하는 필승의 도박법은 매우 간단하다
"이렇게 하면 간단하게 시뮬레이션할 수 있어요!"
이렇게 생각하면서 실제로 해 봤어요.
전제 조건
영상설
룰렛이나 바보처럼 당첨 시 배당금은 2배나 3배로 변하는 게임에서 유효하다.왜냐면
바보가 뭐야?
그래, 이번에는
당첨 확률이 ${fracc {1} {2}이면 침대 액수의 2배를 얻을 수 있는 게임을 시뮬레이션해 보세요.
그리고 자금은 무한을 전제로 한다.그게 중요해.시험을 보다.
내기법
●준비
우선'1, 2, 3'의 배열을 준비한다.
끝.
● 침대 금액
"침대 금액은 양쪽을 배열한 숫자를 더한 것이다."
즉'1, 2, 3'으로 배열된 경우
1 + 3 = 4
그래서 침대 금액은 4.
※ 학점은 엔화, 달러, 팁 등으로 마음대로 해석할 수 있습니다.
● 졌을 때
→진 금액을 수열에 추가한다.
하면, 만약, 만약...
1,2,3에 4를 추가하기 때문에 수열
하나, 둘, 셋, 넷이 되다.
😸<"다음 침대는 1+4=5!"
● 승리할 때
→ 수열의 양 끝에 있는 숫자를 삭제한다.
수열이'1, 2, 3, 4'면 양 끝을 지워버려
2, 3이 됐어요.
● 종료 조건
→ 수열이 비어 있을 때 종료
수열이'2,3'상태에서 이기면 양쪽 끝의 숫자가 사라지기 때문에 수열은 비어 있다.
이러면 끝이야.
시뮬레이션에서는'1, 2, 3'수열부터 다시 시작해야 한다.
도박
모방하다
자!!!!!!!!!!!!!!!!!!!!
읊다, 읊조리다
다 했어!
한 시간 정도 인코딩이 됐어요.
언제 보아도 자신의 전선이 왔다.
아, 원본 코드는 밑에 놓으세요.싫지만
● 타임 포인트: 100000
→수열이 비워질 때까지 1시대
이런 느낌으로 시뮬레이션 시작!!!● 1エポック目 スタート
x 負け -4 | 収支: -4
초전 실패...
Oh my god.● 1エポック目 スタート
x 負け -4 | 収支: -4
◯ 勝ち +10 | 収支: 1
◯ 勝ち +10 | 収支: 6
----- エポック終了 -----
아이고, 끝났다.빠르네.
배열로서의 운동
'1, 2, 3'침대 1+3=4
↓실패
'1, 2, 3, 4'침대 1+4=5
↓승리
'2,3'침대 2+3=5
↓승리
""Epoke 종료
이런 느낌이야.어쨌든 움직이는 것 같은데.잘 됐다.
다음은 2세기!!● 2エポック目 スタート
x 負け -4 | 収支: 2
◯ 勝ち +10 | 収支: 7
◯ 勝ち +10 | 収支: 12
----- エポック終了 -----
+12 제2세기 끝!!
느낌이 별로 안 좋아요.
그럼 여기서 100000세기로 넘어가서 결과를 보자!!!
결과 발표~~~봉화 33!
:
◯ 勝ち +14 | 収支: 1089628
◯ 勝ち +12 | 収支: 1089634
----- エポック終了 -----
*************************************
- エポック数: 100000
- 合計ゲーム数: 691853
- 最終収支: 1,089,634
- 最低収支: -783,261
- 最大ベット: 389,640
*************************************
오!!- 最終収支: 1,089,634
최종 수지가 109만!!!
대단해--------
허름한 승리!!
응, 응...?- 最低収支: -783,261
도중에 완전히 실패하지 않았느냐
거짓말이지!무슨 일이야!!- 最大ベット: 389,640
39만 걸린 게임 있어요!!
얼마나 큰 승부가 났는가!
나는 그런 마음이 없다!
100000세기로 날아갈 때 많은 일들이 일어났다
야단났네.수고하셨습니다.
결국 이길 수 있어서 다행이다.
결과(드로잉)
가로축은 게임이고, 세로축은 수지다.
그물의 단위가 매우 커서 잘 보이지 않을 수도 있고 맞지 않을 수도 있다.
고찰하다.
나도 몇 번 해 보았지만 최종 수지는 틀림없이 가산점일 것이다.
그리고 하면 할수록 승리한다.
"몬테카로파 잘하잖아!"
나도 그렇게 생각했던 시절이 있었다.
근데 중요한 거 잊은 거 없어요?
네...
"이 시뮬레이션은 파산 개념이 없어요".
"자금이 무한하다는 전제로 시뮬레이션"
이런 함정...
하면 할수록 수입이 늘긴 하지만.
하면 할수록 대패할 가능성이 있다.
곰곰이 생각해 보면 그렇다.
졌을 때 "진 금액 +"α왜냐하면 저는 침대에 있을 거예요.
연패가 계속되면 침대 금액이 나빠진다.
하면 할수록 좋지만 자금이 제한되면 언젠가는 참패해 죽을 것이다.
노름판에서 죽었는지 도박판에서 죽었는지
〜〜 DEAD OR ALIVE 〜〜
이상, 사실은 공포의 몬테카로파입니다.
끝.
끝맺다
여기까지 읽어주신 여러분, 감사합니다.
이 기사가 재미있다고 생각하는 사람.
괜찮다, 미행 안 해도 돼.
부끄러워서요.
휴일에 시간이 있으면 다시 투고하자.
소스 코드
동작 환경: Python 3.6.5(anaconda 3-5.2.0)
아무것도 일어나지 않는 도서관이 없기 때문에, 나는 아나콘다가 없어도 움직일 수 있다고 생각한다.
아, 이 경우 matplotlib pip install만 하면 돼요.
# -*- coding: utf-8 -*-
import random
import copy
import matplotlib.pyplot as plt
def main():
# parameter
EPOCH_NUM = 100000
MANGNIFICATION = 2 # ゲームの倍率
# const
INITIAL_BET_ARRAY = [1, 2, 3]
# balance
BALANCE = 0
# result
gameNum = 0
maxBet = 0
minBalance = 0
balanceRecordArray = []
for game in range(EPOCH_NUM):
print("● " + str(game + 1) + "エポック目 スタート")
betArray = copy.copy(INITIAL_BET_ARRAY)
while True:
gameNum += 1
bet = betArray[0] + betArray[-1]
if bet > maxBet:
maxBet = bet
BALANCE -= bet
# 勝負開始
gameResult = random.randrange(MANGNIFICATION)
if gameResult == 0: # win
BALANCE += bet * MANGNIFICATION
betArray = betArray[1:-1]
print(" ◯ 勝ち +" + str(bet * MANGNIFICATION) + " | 収支: " + str(BALANCE))
else: # lose
if BALANCE < minBalance:
minBalance = BALANCE
betArray.append(bet)
print(" x 負け -" + str(bet) + " | 収支: " + str(BALANCE))
# 記録
balanceRecordArray.append(BALANCE)
# エポック終了判定
if not betArray:
print("----- エポック終了 -----")
break
print("*************************************")
print("- エポック数: " + str(EPOCH_NUM))
print("- 合計ゲーム数: " + str(gameNum))
print("- 最終収支: " + "{:,}".format(BALANCE))
print("- 最低収支: " + "{:,}".format(minBalance))
print("- 最大ベット: " + "{:,}".format(maxBet))
print("*************************************")
plt.plot(range(len(balanceRecordArray)), balanceRecordArray, label="balance")
plt.grid()
plt.xlabel("game")
plt.ylabel("chips")
plt.legend()
plt.savefig("result.png")
if __name__ == '__main__':
main()
Reference
이 문제에 관하여([ptyhon] 카지노를 붕괴시킬 것 같은 몬테카로 방법을 모의했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kagawa_shinjiiiii/items/ff49a8c7ccc682845a2a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
영상설
룰렛이나 바보처럼 당첨 시 배당금은 2배나 3배로 변하는 게임에서 유효하다.왜냐면
바보가 뭐야?
그래, 이번에는
당첨 확률이 ${fracc {1} {2}이면 침대 액수의 2배를 얻을 수 있는 게임을 시뮬레이션해 보세요.
그리고 자금은 무한을 전제로 한다.그게 중요해.시험을 보다.
내기법
●준비
우선'1, 2, 3'의 배열을 준비한다.
끝.
● 침대 금액
"침대 금액은 양쪽을 배열한 숫자를 더한 것이다."
즉'1, 2, 3'으로 배열된 경우
1 + 3 = 4
그래서 침대 금액은 4.
※ 학점은 엔화, 달러, 팁 등으로 마음대로 해석할 수 있습니다.
● 졌을 때
→진 금액을 수열에 추가한다.
하면, 만약, 만약...
1,2,3에 4를 추가하기 때문에 수열
하나, 둘, 셋, 넷이 되다.
😸<"다음 침대는 1+4=5!"
● 승리할 때
→ 수열의 양 끝에 있는 숫자를 삭제한다.
수열이'1, 2, 3, 4'면 양 끝을 지워버려
2, 3이 됐어요.
● 종료 조건
→ 수열이 비어 있을 때 종료
수열이'2,3'상태에서 이기면 양쪽 끝의 숫자가 사라지기 때문에 수열은 비어 있다.
이러면 끝이야.
시뮬레이션에서는'1, 2, 3'수열부터 다시 시작해야 한다.
도박
모방하다
자!!!!!!!!!!!!!!!!!!!!
읊다, 읊조리다
다 했어!
한 시간 정도 인코딩이 됐어요.
언제 보아도 자신의 전선이 왔다.
아, 원본 코드는 밑에 놓으세요.싫지만
● 타임 포인트: 100000
→수열이 비워질 때까지 1시대
이런 느낌으로 시뮬레이션 시작!!!● 1エポック目 スタート
x 負け -4 | 収支: -4
초전 실패...
Oh my god.● 1エポック目 スタート
x 負け -4 | 収支: -4
◯ 勝ち +10 | 収支: 1
◯ 勝ち +10 | 収支: 6
----- エポック終了 -----
아이고, 끝났다.빠르네.
배열로서의 운동
'1, 2, 3'침대 1+3=4
↓실패
'1, 2, 3, 4'침대 1+4=5
↓승리
'2,3'침대 2+3=5
↓승리
""Epoke 종료
이런 느낌이야.어쨌든 움직이는 것 같은데.잘 됐다.
다음은 2세기!!● 2エポック目 スタート
x 負け -4 | 収支: 2
◯ 勝ち +10 | 収支: 7
◯ 勝ち +10 | 収支: 12
----- エポック終了 -----
+12 제2세기 끝!!
느낌이 별로 안 좋아요.
그럼 여기서 100000세기로 넘어가서 결과를 보자!!!
결과 발표~~~봉화 33!
:
◯ 勝ち +14 | 収支: 1089628
◯ 勝ち +12 | 収支: 1089634
----- エポック終了 -----
*************************************
- エポック数: 100000
- 合計ゲーム数: 691853
- 最終収支: 1,089,634
- 最低収支: -783,261
- 最大ベット: 389,640
*************************************
오!!- 最終収支: 1,089,634
최종 수지가 109만!!!
대단해--------
허름한 승리!!
응, 응...?- 最低収支: -783,261
도중에 완전히 실패하지 않았느냐
거짓말이지!무슨 일이야!!- 最大ベット: 389,640
39만 걸린 게임 있어요!!
얼마나 큰 승부가 났는가!
나는 그런 마음이 없다!
100000세기로 날아갈 때 많은 일들이 일어났다
야단났네.수고하셨습니다.
결국 이길 수 있어서 다행이다.
결과(드로잉)
가로축은 게임이고, 세로축은 수지다.
그물의 단위가 매우 커서 잘 보이지 않을 수도 있고 맞지 않을 수도 있다.
고찰하다.
나도 몇 번 해 보았지만 최종 수지는 틀림없이 가산점일 것이다.
그리고 하면 할수록 승리한다.
"몬테카로파 잘하잖아!"
나도 그렇게 생각했던 시절이 있었다.
근데 중요한 거 잊은 거 없어요?
네...
"이 시뮬레이션은 파산 개념이 없어요".
"자금이 무한하다는 전제로 시뮬레이션"
이런 함정...
하면 할수록 수입이 늘긴 하지만.
하면 할수록 대패할 가능성이 있다.
곰곰이 생각해 보면 그렇다.
졌을 때 "진 금액 +"α왜냐하면 저는 침대에 있을 거예요.
연패가 계속되면 침대 금액이 나빠진다.
하면 할수록 좋지만 자금이 제한되면 언젠가는 참패해 죽을 것이다.
노름판에서 죽었는지 도박판에서 죽었는지
〜〜 DEAD OR ALIVE 〜〜
이상, 사실은 공포의 몬테카로파입니다.
끝.
끝맺다
여기까지 읽어주신 여러분, 감사합니다.
이 기사가 재미있다고 생각하는 사람.
괜찮다, 미행 안 해도 돼.
부끄러워서요.
휴일에 시간이 있으면 다시 투고하자.
소스 코드
동작 환경: Python 3.6.5(anaconda 3-5.2.0)
아무것도 일어나지 않는 도서관이 없기 때문에, 나는 아나콘다가 없어도 움직일 수 있다고 생각한다.
아, 이 경우 matplotlib pip install만 하면 돼요.
# -*- coding: utf-8 -*-
import random
import copy
import matplotlib.pyplot as plt
def main():
# parameter
EPOCH_NUM = 100000
MANGNIFICATION = 2 # ゲームの倍率
# const
INITIAL_BET_ARRAY = [1, 2, 3]
# balance
BALANCE = 0
# result
gameNum = 0
maxBet = 0
minBalance = 0
balanceRecordArray = []
for game in range(EPOCH_NUM):
print("● " + str(game + 1) + "エポック目 スタート")
betArray = copy.copy(INITIAL_BET_ARRAY)
while True:
gameNum += 1
bet = betArray[0] + betArray[-1]
if bet > maxBet:
maxBet = bet
BALANCE -= bet
# 勝負開始
gameResult = random.randrange(MANGNIFICATION)
if gameResult == 0: # win
BALANCE += bet * MANGNIFICATION
betArray = betArray[1:-1]
print(" ◯ 勝ち +" + str(bet * MANGNIFICATION) + " | 収支: " + str(BALANCE))
else: # lose
if BALANCE < minBalance:
minBalance = BALANCE
betArray.append(bet)
print(" x 負け -" + str(bet) + " | 収支: " + str(BALANCE))
# 記録
balanceRecordArray.append(BALANCE)
# エポック終了判定
if not betArray:
print("----- エポック終了 -----")
break
print("*************************************")
print("- エポック数: " + str(EPOCH_NUM))
print("- 合計ゲーム数: " + str(gameNum))
print("- 最終収支: " + "{:,}".format(BALANCE))
print("- 最低収支: " + "{:,}".format(minBalance))
print("- 最大ベット: " + "{:,}".format(maxBet))
print("*************************************")
plt.plot(range(len(balanceRecordArray)), balanceRecordArray, label="balance")
plt.grid()
plt.xlabel("game")
plt.ylabel("chips")
plt.legend()
plt.savefig("result.png")
if __name__ == '__main__':
main()
Reference
이 문제에 관하여([ptyhon] 카지노를 붕괴시킬 것 같은 몬테카로 방법을 모의했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kagawa_shinjiiiii/items/ff49a8c7ccc682845a2a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
자!!!!!!!!!!!!!!!!!!!!
읊다, 읊조리다
다 했어!
한 시간 정도 인코딩이 됐어요.
언제 보아도 자신의 전선이 왔다.
아, 원본 코드는 밑에 놓으세요.싫지만
● 타임 포인트: 100000
→수열이 비워질 때까지 1시대
이런 느낌으로 시뮬레이션 시작!!!
● 1エポック目 スタート
x 負け -4 | 収支: -4
초전 실패...Oh my god.
● 1エポック目 スタート
x 負け -4 | 収支: -4
◯ 勝ち +10 | 収支: 1
◯ 勝ち +10 | 収支: 6
----- エポック終了 -----
아이고, 끝났다.빠르네.배열로서의 운동
'1, 2, 3'침대 1+3=4
↓실패
'1, 2, 3, 4'침대 1+4=5
↓승리
'2,3'침대 2+3=5
↓승리
""Epoke 종료
이런 느낌이야.어쨌든 움직이는 것 같은데.잘 됐다.
다음은 2세기!!
● 2エポック目 スタート
x 負け -4 | 収支: 2
◯ 勝ち +10 | 収支: 7
◯ 勝ち +10 | 収支: 12
----- エポック終了 -----
+12 제2세기 끝!!느낌이 별로 안 좋아요.
그럼 여기서 100000세기로 넘어가서 결과를 보자!!!
결과 발표~~~봉화 33!
:
◯ 勝ち +14 | 収支: 1089628
◯ 勝ち +12 | 収支: 1089634
----- エポック終了 -----
*************************************
- エポック数: 100000
- 合計ゲーム数: 691853
- 最終収支: 1,089,634
- 最低収支: -783,261
- 最大ベット: 389,640
*************************************
오!!- 最終収支: 1,089,634
최종 수지가 109만!!!대단해--------
허름한 승리!!
응, 응...?
- 最低収支: -783,261
도중에 완전히 실패하지 않았느냐거짓말이지!무슨 일이야!!
- 最大ベット: 389,640
39만 걸린 게임 있어요!!얼마나 큰 승부가 났는가!
나는 그런 마음이 없다!
100000세기로 날아갈 때 많은 일들이 일어났다
야단났네.수고하셨습니다.
결국 이길 수 있어서 다행이다.
결과(드로잉)
가로축은 게임이고, 세로축은 수지다.
그물의 단위가 매우 커서 잘 보이지 않을 수도 있고 맞지 않을 수도 있다.
고찰하다.
나도 몇 번 해 보았지만 최종 수지는 틀림없이 가산점일 것이다.
그리고 하면 할수록 승리한다.
"몬테카로파 잘하잖아!"
나도 그렇게 생각했던 시절이 있었다.
근데 중요한 거 잊은 거 없어요?
네...
"이 시뮬레이션은 파산 개념이 없어요".
"자금이 무한하다는 전제로 시뮬레이션"
이런 함정...
하면 할수록 수입이 늘긴 하지만.
하면 할수록 대패할 가능성이 있다.
곰곰이 생각해 보면 그렇다.
졌을 때 "진 금액 +"α왜냐하면 저는 침대에 있을 거예요.
연패가 계속되면 침대 금액이 나빠진다.
하면 할수록 좋지만 자금이 제한되면 언젠가는 참패해 죽을 것이다.
노름판에서 죽었는지 도박판에서 죽었는지
〜〜 DEAD OR ALIVE 〜〜
이상, 사실은 공포의 몬테카로파입니다.
끝.
끝맺다
여기까지 읽어주신 여러분, 감사합니다.
이 기사가 재미있다고 생각하는 사람.
괜찮다, 미행 안 해도 돼.
부끄러워서요.
휴일에 시간이 있으면 다시 투고하자.
소스 코드
동작 환경: Python 3.6.5(anaconda 3-5.2.0)
아무것도 일어나지 않는 도서관이 없기 때문에, 나는 아나콘다가 없어도 움직일 수 있다고 생각한다.
아, 이 경우 matplotlib pip install만 하면 돼요.
# -*- coding: utf-8 -*-
import random
import copy
import matplotlib.pyplot as plt
def main():
# parameter
EPOCH_NUM = 100000
MANGNIFICATION = 2 # ゲームの倍率
# const
INITIAL_BET_ARRAY = [1, 2, 3]
# balance
BALANCE = 0
# result
gameNum = 0
maxBet = 0
minBalance = 0
balanceRecordArray = []
for game in range(EPOCH_NUM):
print("● " + str(game + 1) + "エポック目 スタート")
betArray = copy.copy(INITIAL_BET_ARRAY)
while True:
gameNum += 1
bet = betArray[0] + betArray[-1]
if bet > maxBet:
maxBet = bet
BALANCE -= bet
# 勝負開始
gameResult = random.randrange(MANGNIFICATION)
if gameResult == 0: # win
BALANCE += bet * MANGNIFICATION
betArray = betArray[1:-1]
print(" ◯ 勝ち +" + str(bet * MANGNIFICATION) + " | 収支: " + str(BALANCE))
else: # lose
if BALANCE < minBalance:
minBalance = BALANCE
betArray.append(bet)
print(" x 負け -" + str(bet) + " | 収支: " + str(BALANCE))
# 記録
balanceRecordArray.append(BALANCE)
# エポック終了判定
if not betArray:
print("----- エポック終了 -----")
break
print("*************************************")
print("- エポック数: " + str(EPOCH_NUM))
print("- 合計ゲーム数: " + str(gameNum))
print("- 最終収支: " + "{:,}".format(BALANCE))
print("- 最低収支: " + "{:,}".format(minBalance))
print("- 最大ベット: " + "{:,}".format(maxBet))
print("*************************************")
plt.plot(range(len(balanceRecordArray)), balanceRecordArray, label="balance")
plt.grid()
plt.xlabel("game")
plt.ylabel("chips")
plt.legend()
plt.savefig("result.png")
if __name__ == '__main__':
main()
Reference
이 문제에 관하여([ptyhon] 카지노를 붕괴시킬 것 같은 몬테카로 방법을 모의했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kagawa_shinjiiiii/items/ff49a8c7ccc682845a2a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
나도 몇 번 해 보았지만 최종 수지는 틀림없이 가산점일 것이다.
그리고 하면 할수록 승리한다.
"몬테카로파 잘하잖아!"
나도 그렇게 생각했던 시절이 있었다.
근데 중요한 거 잊은 거 없어요?
네...
"이 시뮬레이션은 파산 개념이 없어요".
"자금이 무한하다는 전제로 시뮬레이션"
이런 함정...
하면 할수록 수입이 늘긴 하지만.
하면 할수록 대패할 가능성이 있다.
곰곰이 생각해 보면 그렇다.
졌을 때 "진 금액 +"α왜냐하면 저는 침대에 있을 거예요.
연패가 계속되면 침대 금액이 나빠진다.
하면 할수록 좋지만 자금이 제한되면 언젠가는 참패해 죽을 것이다.
노름판에서 죽었는지 도박판에서 죽었는지
〜〜 DEAD OR ALIVE 〜〜
이상, 사실은 공포의 몬테카로파입니다.
끝.
끝맺다
여기까지 읽어주신 여러분, 감사합니다.
이 기사가 재미있다고 생각하는 사람.
괜찮다, 미행 안 해도 돼.
부끄러워서요.
휴일에 시간이 있으면 다시 투고하자.
소스 코드
동작 환경: Python 3.6.5(anaconda 3-5.2.0)
아무것도 일어나지 않는 도서관이 없기 때문에, 나는 아나콘다가 없어도 움직일 수 있다고 생각한다.
아, 이 경우 matplotlib pip install만 하면 돼요.
# -*- coding: utf-8 -*-
import random
import copy
import matplotlib.pyplot as plt
def main():
# parameter
EPOCH_NUM = 100000
MANGNIFICATION = 2 # ゲームの倍率
# const
INITIAL_BET_ARRAY = [1, 2, 3]
# balance
BALANCE = 0
# result
gameNum = 0
maxBet = 0
minBalance = 0
balanceRecordArray = []
for game in range(EPOCH_NUM):
print("● " + str(game + 1) + "エポック目 スタート")
betArray = copy.copy(INITIAL_BET_ARRAY)
while True:
gameNum += 1
bet = betArray[0] + betArray[-1]
if bet > maxBet:
maxBet = bet
BALANCE -= bet
# 勝負開始
gameResult = random.randrange(MANGNIFICATION)
if gameResult == 0: # win
BALANCE += bet * MANGNIFICATION
betArray = betArray[1:-1]
print(" ◯ 勝ち +" + str(bet * MANGNIFICATION) + " | 収支: " + str(BALANCE))
else: # lose
if BALANCE < minBalance:
minBalance = BALANCE
betArray.append(bet)
print(" x 負け -" + str(bet) + " | 収支: " + str(BALANCE))
# 記録
balanceRecordArray.append(BALANCE)
# エポック終了判定
if not betArray:
print("----- エポック終了 -----")
break
print("*************************************")
print("- エポック数: " + str(EPOCH_NUM))
print("- 合計ゲーム数: " + str(gameNum))
print("- 最終収支: " + "{:,}".format(BALANCE))
print("- 最低収支: " + "{:,}".format(minBalance))
print("- 最大ベット: " + "{:,}".format(maxBet))
print("*************************************")
plt.plot(range(len(balanceRecordArray)), balanceRecordArray, label="balance")
plt.grid()
plt.xlabel("game")
plt.ylabel("chips")
plt.legend()
plt.savefig("result.png")
if __name__ == '__main__':
main()
Reference
이 문제에 관하여([ptyhon] 카지노를 붕괴시킬 것 같은 몬테카로 방법을 모의했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kagawa_shinjiiiii/items/ff49a8c7ccc682845a2a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
동작 환경: Python 3.6.5(anaconda 3-5.2.0)
아무것도 일어나지 않는 도서관이 없기 때문에, 나는 아나콘다가 없어도 움직일 수 있다고 생각한다.
아, 이 경우 matplotlib pip install만 하면 돼요.
# -*- coding: utf-8 -*-
import random
import copy
import matplotlib.pyplot as plt
def main():
# parameter
EPOCH_NUM = 100000
MANGNIFICATION = 2 # ゲームの倍率
# const
INITIAL_BET_ARRAY = [1, 2, 3]
# balance
BALANCE = 0
# result
gameNum = 0
maxBet = 0
minBalance = 0
balanceRecordArray = []
for game in range(EPOCH_NUM):
print("● " + str(game + 1) + "エポック目 スタート")
betArray = copy.copy(INITIAL_BET_ARRAY)
while True:
gameNum += 1
bet = betArray[0] + betArray[-1]
if bet > maxBet:
maxBet = bet
BALANCE -= bet
# 勝負開始
gameResult = random.randrange(MANGNIFICATION)
if gameResult == 0: # win
BALANCE += bet * MANGNIFICATION
betArray = betArray[1:-1]
print(" ◯ 勝ち +" + str(bet * MANGNIFICATION) + " | 収支: " + str(BALANCE))
else: # lose
if BALANCE < minBalance:
minBalance = BALANCE
betArray.append(bet)
print(" x 負け -" + str(bet) + " | 収支: " + str(BALANCE))
# 記録
balanceRecordArray.append(BALANCE)
# エポック終了判定
if not betArray:
print("----- エポック終了 -----")
break
print("*************************************")
print("- エポック数: " + str(EPOCH_NUM))
print("- 合計ゲーム数: " + str(gameNum))
print("- 最終収支: " + "{:,}".format(BALANCE))
print("- 最低収支: " + "{:,}".format(minBalance))
print("- 最大ベット: " + "{:,}".format(maxBet))
print("*************************************")
plt.plot(range(len(balanceRecordArray)), balanceRecordArray, label="balance")
plt.grid()
plt.xlabel("game")
plt.ylabel("chips")
plt.legend()
plt.savefig("result.png")
if __name__ == '__main__':
main()
Reference
이 문제에 관하여([ptyhon] 카지노를 붕괴시킬 것 같은 몬테카로 방법을 모의했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kagawa_shinjiiiii/items/ff49a8c7ccc682845a2a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)