python根据指定概率生成随机数

一、前言

        今天在上信息论与编码这门课的时候,看到书上有个题目需要求:单符号离散无记忆二信源,需要用指定概率来生成随机数,书上是用matlab来实现的,matlab中的randsrc函数可以传入元素元素对应的概率 来生成随机数,我就在想这是如何实现的,用python怎么做,查了一圈发现并没有找到想要的信息(后来发现random.choice()可以实现这个功能),其他博客上都写的支支吾吾的,于是我开始自己研究,最后终于想出办法解决问题。

二、代码及思路

        举个例子来说明一下:

        比如我现在有个数组[1, 2, 3, 4]

        我想要他们对应的随机概率为[0.1, 0.2, 0.3, 0.4]

   代码

import random


def randomNum_for_probability(array: list, probability_array: list):
    """
    按照指定概率生成随机数
    :param array: 随机数列表
    :param probability_array: 对应每个元素生成的概率
    :return: 随机生成的数字
    """
    rand_num = random.random()  # 随机生成一个0到1之间的浮点数
    Sn = 0  # 前n个数生成的概率和
    for index, 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值