作业二

(1)运行修改前的代码,运行结果如下:

(2)游戏规则如下:

有5000人参与实验,人们放硬币或拿硬币,箱子中初始剩余硬币为500枚,最多可取数量为3枚,最多可放数量为1枚,阈值为3.5。

修改后的代码如下:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import random
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import mlab
from matplotlib import rcParams


# 初始参数设置
Box_sum =500 # 箱子中剩余硬币数量,初始值
People_Flag= random.randint(1,10) # flag 模拟人们取硬币或放硬币的概率 1~10
Threshold = 3.5 # 阈值,可调: 1~Threshold 为取硬币,Threshold+1 ~10 为放硬币
Max_TakeCoin=3 # 最多可取硬币数量
Max_DonateCoin=1 # 最多可放硬币数量

delata=0 # 取、放硬币数量
Box_per_remain= [500] # 每次箱子中硬币余额,list


# 算法模拟
for x in range(1,5000): # 循环次数表示参与人数
flag= random.randint(1,10) # flag 模拟人们取硬币或放硬币的概率
if flag > Threshold:
# 放硬币
delta=random.randint(1,Max_DonateCoin)
delta=random.randint(1,delta) # 模拟了人们捐款可能性,有偏少的倾向
Box_sum =Box_sum + delta
Box_per_remain.append(Box_sum)
else:
# 取硬币
delta=random.randint(1,Max_TakeCoin)
delta=random.randint(delta,Max_TakeCoin) # 模拟了人 取硬币的可能性,偏多的倾向
if Box_sum < delta:
Box_sum =0 # 如果不够取,则取光
else:
Box_sum =Box_sum - delta
Box_per_remain.append(Box_sum)

print(Box_per_remain)


# 绘图区
fig = plt.figure()

## 1. 标题、X、Y 轴 label
plt.title('Subway testing')
plt.xlabel('Time')
plt.ylabel('Money remained')

x= np.arange(len(Box_per_remain))

## 2. data

plt.plot(x,Box_per_remain,color='r')
plt.bar(x,Box_per_remain,alpha=.5,color='g')

plt.show()

修改后的运行结果如下:

修改部分:将阈值改为3.5,最多可取数量改为3枚。

远端仓库链接为https://gitee.com/syzzzz.mayun/Game

转载于:https://www.cnblogs.com/syzzzz/p/7571314.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值