计算机科学和PYTHON编程导论_15_概率与分布

本文介绍了概率与分布的基础概念,包括随机程序中的掷骰子、独立事件的概率计算,以及统计推断中的大数定律和均值回归。详细探讨了直方图、概率分布、正态分布的特性,以及如何使用Python实现相关计算。还讨论了离散型和连续型均匀分布,以及二项式分布、多项式分布、指数分布和几何分布,最后提到了本福德定律在自然数据集中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

随机程序

掷骰子

import random
def rollDie():
    """返回一个1~6的随机整数"""
    return random.choice([1,2,3,4,5,6])
def rollN(n):
    result = ''
    for i in range(n):
        result = result + str(rollDie())
    print(result)
>>>rollN(5)
31441
  • random.choice接受一个非空序列作为参数,然后返回一个从序列中随机选择的元素。
  • random中几乎所有函数都以random.random为基础,它会生成一个0.0~1.0的随机浮点数。

相互独立
在随机过程中,如果一个事件的结果不会影响另一个事件的结果,我们就称这两个事件是相互独立的。

计算简单概率

概率
一般来说,当我们讨论具有某种特性的结果的概率时,实际上是想知道在所有结果中,具有这种特性的结果占多少比例。这就是概率取值范围在0~1的原因。

独立概率的乘法法则
举例来说,考虑两个独立事件A和B。如果A发生的概率是1/3, B发生的概率是1/4,那么A和B同时发生的概率就是(1/3) × (1/4)。

统计推断

统计推断的指导原则
一个从总体数据中随机抽取的样本往往可以表现出与总体相同的特性。

抛硬币

def flip(numFlips):
    """假设numFlips是一个正整数"""
    heads = 0
    for i in range(numFlips):
        if random.choice(('H', 'T')) == 'H':
            heads += 1
    return heads/numFlips
def flipSim(numFlipsPerTrial, numTrials):
    """假设numFlipsPerTrial和numTrials是正整数"""
    fracHeads = []
    for i in range(numTrials):
        fracHeads.append(flip(numFlipsPerTrial))
    mean = sum(fracHeads)/len(fracHeads)
    return mean
  • numTrials表示进行实验的次数,numFlipsPerTrial表示每次实验的次数
  • 函数flip可以模拟抛掷一个均匀的硬币numFlips(numFlipsPerTrial)次,然后返回正面向上的比例。
  • 对于每次抛掷,它都会调用random.choice((‘H’, ‘T’))随机地返回一个’H’或’T’。
>>>flipSim(10, 1)
0.8
>>>flipSim(10, 100)
0
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值