注册
登录
查看:779 | 回复:11
德玛西亚
会PYTHON的大佬能不能RUN一下这道数学题
发表于 2023/10/17 12:47:55
楼主

会PYTHON的大佬能不能RUN一下这道数学题:初始200个数,每个数都为1,然后每个1随机加1或者0,随机加到1继续往下加,加到0终止,最终这200个1加随机加的数之和会是多大的数

摇一摇
发表于 2023/10/17 12:50:07
沙发

这是概率论吧

德玛西亚
发表于 2023/10/17 12:52:18
板凳

还不完善,加入这个条件:65%的概率加到1,35%的概率加到0,能不能再帮算一下

shane
发表于 2023/10/17 12:55:29
4楼

你这都不会?

德玛西亚
发表于 2023/10/17 12:57:17
5楼

我算出来了,但是想看看你们的答案

金水
发表于 2023/10/17 12:59:55
6楼

低样本情况下,在不充分情况下,选中的概率确实不会特别搞

1-10 10个数,如果只在10次中,那么选中1和10的几率不一定很高

固定
发表于 2023/10/17 13:02:49
7楼
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)


试试这个

德玛西亚
发表于 2023/10/17 13:05:52
8楼

你这不对,怎么算出来才201

金水
发表于 2023/10/17 13:06:44
9楼
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)

试试这个

德玛西亚
发表于 2023/10/17 13:10:24
10楼

加入这个条件:65%的概率加到1,35%的概率加到0,能不能再帮算一下

金水
最佳答案 发表于 2023/10/17 13:11:31
11楼
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

立即注册站大爷用户,免费试用全部产品
立即注册站大爷用户,免费试用全部产品