骰子游戏
有三颗骰子,每次一起抛出,现在用随机函数模拟抛掷1000次(100*3)
- 统计1000次抛出的结果中,有多少次投出‘666’?
- 有多少次三个骰子点数一样(即:投掷结果为’豹子‘)?
- 假定最初有500个筹码,如果三个骰子的点数之和大于10算赢,小于等于10算输,每次输赢一个筹码,那么最后的结果是赢还是输呢?
- 曾经达到的最大输赢数是多少?
import numpy as np
np.random.seed(7)#
num=1000
dice=np.random.randint(1,7,size=(num,3))
#计算三个骰子的点数之和,添加到dice末尾列
dice=np.column_stack((dice,dice.sum(axis=1)))#整体运算,简化代码
point=dice[:,3]#取第三列,即:求和列
print('投掷出666的次数',(point==18).sum())#
print('666出现在第x次',np.where(point==18))
#布尔数组,做逻辑and操作
condition=np.logical_and(dice[:,0]==dice[:,1],dice[:,1]==dice[:,2])
print('\n三次投掷点数均为相同的次数:',condition.sum())
print('投掷情况为:',dice[condition])#计算ture的次数,布尔索引