Python实验: numby库的应用实例

骰子游戏

有三颗骰子,每次一起抛出,现在用随机函数模拟抛掷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的次数,布尔索引

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值