会PYTHON的大佬能不能RUN一下这道数学题:初始200个数,每个数都为1,然后每个1随机加1或者0,随机加到1继续往下加,加到0终止,最终这200个1加随机加的数之和会是多大的数
这是概率论吧
还不完善,加入这个条件:65%的概率加到1,35%的概率加到0,能不能再帮算一下
你这都不会?
我算出来了,但是想看看你们的答案
低样本情况下,在不充分情况下,选中的概率确实不会特别搞
1-10 10个数,如果只在10次中,那么选中1和10的几率不一定很高
import random num_simulations = 10000 # 模拟的次数 total_sum = 0 for _ in range(num_simulations): sequence = [1] * 200 # 初始化一个包含200个1的序列 while sequence: if random.random() 0.65: sequence.append(1) # 以0.65的概率加1 else: break # 以0.35的概率加0并终止 total_sum += sum(sequence) expected_sum = total_sum / num_simulations print( 估计的总和的期望值: , expected_sum)
试试这个
你这不对,怎么算出来才201
import random def simulate_sum(): # 初始200个数,每个数都为1 numbers = [1] * 200 # 遍历每个数,随机加1或者0 for i in range(len(numbers)): while random.choice([True, False]): numbers[i] += 1 # 计算最终和 total_sum = sum(numbers) return total_sum # 运行模拟 result = simulate_sum() # 打印结果 print( 最终的和是: , result)
试试这个
加入这个条件:65%的概率加到1,35%的概率加到0,能不能再帮算一下
import random def simulate_sum_with_probability(): # 初始200个数,每个数都为1 numbers = [1] * 200 # 遍历每个数,根据概率随机加1或者0 for i in range(len(numbers)): while random.choices([1, 0], weights=[0.65, 0.35])[0] == 1: numbers[i] += 1 # 计算最终和 total_sum = sum(numbers) return total_sum # 运行模拟 result = simulate_sum_with_probability() # 打印结果 print( 最终的和是: , result)
530