首页 > 解决方案 > MATLAB代码实现一个随机二进制源,分别以概率p和1(-p)生成位'1'和位'0'

问题描述

我使用了一个函数来根据我的选择分配 p 的值。在函数内部,我使用内置函数 randsrc() 来获取所需顺序的矩阵并以用户定义的概率生成索引值。例如,要获得 1X10 阶矩阵并以 0.7 的概率生成 1,我使用了 randsrc(1,10,[1 0;0.7 0.3])。第一个输出没问题,因为我得到了 7 个 1 和 3 个 0,但是当我多次运行它时,输出与生成 1 的概率不符合我的意愿不同。您能否指出原因或提出更好的方法来解决该问题?

标签: matlabrandomprobabilitybit

解决方案


你试过很多试验吗?

例如

q = randsrc(1,1000,[1 0;0.7 0.3])

产生了 1000 个数字和

hist(q)

生成这样的图表

在此处输入图像描述

对我来说看起来不错,大约 300 个零和 700 个。


推荐阅读