pymontecarlo是一个具有monte carlo模拟辅助功能的模块。
MonteCarlo的Python项目详细描述
皮蒙特卡罗
pymontecarlo是一个具有monte carlo模拟辅助功能的模块
开始
安装pymontecarlo
pip install (coming soon)
基础知识
fromPyMonteCarlo.mcsimportMonteCarloSimulaterControllerasmcs#Flip A Coin. Output between 0 - 1mcs.flip_a_coin()#Roll Dice. Output between 1 - 6mcs.roll_a_dice()
快速入门指南
我们将在一个岩石,帕珀,剪刀游戏上创建一个蒙特卡洛模拟器。 您可以在pymontecarlo文件夹的examples文件夹中找到此游戏
定义
fromPyMonteCarloimportMonteCarloSimulaterControllerasmcscontroller=mcs.MonteCarloSimulaterController(actions=["ROCK","PAPER","SCISSOR"],#All The Actionsresults=["PLAYER_1_WON","PLAYER_2_WON","TIE"])#All The Results
创建游戏登录
defplay(player1_move,player2_move):"""Takes Two Player Input And Decide The Winner"""players=[player1_move,player2_move]ifplayer1_move==player2_move:#They Both Tiedreturn"TIE"moves={"ROCK":"SCISSOR",#Rock beats scissor"SCISSOR":"PAPER","PAPER":"ROCK"}forplayer_indexinrange(len(players)):player_id="PLAYER_1_WON"ifplayer_index==0else"PLAYER_2_WON"formoveinmoves:ifmove==players[player_index]andmoves[move]==players[1ifplayer_index==0else0]:returnplayer_id
创建模拟
#The Main Simulationsfor_inrange(1000):player1_action=controller.take_action()#Randomly takes action between rock, paper, scissorplayer2_action=controller.take_action()"""Also You Can Do This player2_action = controller.take_action(available_actions=["ROCK","PAPER"]) If You Want To Change The Available Outputs """winner=play(player1_action,player2_action)controller.add_result(winner)#Adds The Result To The Controller
查看结果
print(controller.results_count())#Returns How Many Times Each Result Occursprint(controller.max_result(strength=True))#Returns The Maximum Times Occuring Result With Its Strenght Between 0 - 1. 0 means bad and 1 means amazing.print(controller.avg_result(strength=True))#Returns Average Result And Its Strengthprint(controller.median_result(strength=True))#Returns Median Result With Its Strength"""Output{'PLAYER_1_WON': 348, 'PLAYER_2_WON': 316, 'TIE': 336}('PLAYER_1_WON', 0.348)('TIE', 0.336)('TIE', 0.336)"""
贡献
如果您有任何建议,请联系sonicroshan122@gmail或发送请求
作者
roshan jignesh mehta-sonicroshan122@gmail
未来
这些功能将在以后添加
- 蒙特卡罗树搜索
- 绘制蒙特卡罗模拟结果和操作