python函数运行没有结果_请问这个python程序运行后没有结果?

下次发代码能不能写个说明?能不能带个格式,实在不行能不能截个图?

要不是我玩过这个游戏………………

import random

def demon_attack(demon_list: list, attack_count, demon_site, attack: bool = True):

if len(demon_list) == 0:

return attack_count

# 假设都是死的第一个

die_index = 0

if not attack:

die_index = random.sample(range(len(demon_list)), 1)[0]

children_count = 0 # 默认被撞死了蓝胖

if demon_list[die_index] > 0: # 死一个939 生一堆儿子

children_count = min(3, demon_site - len(demon_list[1:]))

demon_list = demon_list[:die_index] + [0] * children_count + demon_list[die_index + 1:]

attack_count += 1

return demon_attack(demon_list, attack_count, demon_site, not attack)

def calculate_pen_count(count_penzi):

attack_count = 0 # 死一个恶魔会喷一下

attack_count = demon_attack([1] * (7 - count_penzi), attack_count, 7 - count_penzi, True)

return count_penzi * attack_count

for count_penzi in range(8):

print(count_penzi, '个喷子 +', 7-count_penzi, '个939,能喷', calculate_pen_count(count_penzi), '下')

0 个喷子 + 7 个939,能喷 0 下

1 个喷子 + 6 个939,能喷 18 下

2 个喷子 + 5 个939,能喷 30 下

3 个喷子 + 4 个939,能喷 36 下

4 个喷子 + 3 个939,能喷 28 下

5 个喷子 + 2 个939,能喷 20 下

6 个喷子 + 1 个939,能喷 12 下

7 个喷子 + 0 个939,能喷 0 下

考虑到存在随机的因素,修改了第二个函数:

import numpy as np

def calculate_pen_count(count_penzi):

attack_count_list = [demon_attack([1] * (7 - count_penzi), 0, 7 - count_penzi, True) for _ in range(1000)]

attack_count_list = np.array(attack_count_list) * count_penzi

return np.mean(attack_count_list), np.std(attack_count_list)

for count_penzi in range(8):

mu_hat,sigma_hat = calculate_pen_count(count_penzi)

print(count_penzi, '个喷子 +', 7-count_penzi, '个939,平均能喷', mu_hat, '下,标准差为:', sigma_hat)

0 个喷子 + 7 个939,平均能喷 0.0 下,标准差为: 0.0

1 个喷子 + 6 个939,平均能喷 17.086 下,标准差为: 1.5292494891285724

2 个喷子 + 5 个939,平均能喷 27.714 下,标准差为: 2.5834480834729385

3 个喷子 + 4 个939,平均能喷 32.25 下,标准差为: 3.1855140872392953

4 个喷子 + 3 个939,平均能喷 30.964 下,标准差为: 3.154473648645682

5 个喷子 + 2 个939,平均能喷 22.39 下,标准差为: 2.4975788275848276

6 个喷子 + 1 个939,平均能喷 12.0 下,标准差为: 0.0

7 个喷子 + 0 个939,平均能喷 0.0 下,标准差为: 0.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值