如何使随机丢失位遵循高斯分布

用户名

目前,我正在编写一个程序,以给定的丢失率生成丢失位。

假设我输入的位数为N = 1000,其中位丢失的N位数遵循二项式分布假设每个比特丢失的概率为p = 20%,并且该比特丢失是独立的。因此,对于1000位和20%的丢失率,您将获得以下高斯分布:均值的参考为Np,方差为Np(1-p)。我们可以使用蒙特卡洛模拟来实现它。这是我的知识,我得到在这里

我不知道如何在C / C ++中实现该方案。你能建议我如何用输入产生位错误是总位和概率错误。这是我在C / C ++中的尝试,但与理论不符:

int* bitloss(int* orbit,int size_orbit,int loss_percent) {

    int* out_bitstream=(int*)malloc(sizeof(int)*size_orbit);
    int randval ;
    std::random_device rd;
    std::mt19937 generator(rd());
    generator.seed( rd() );
    std::uniform_int_distribution<> distribution(0, 100);

    for(int i=0;i<size_orbit,i++) {
        rand_loss = distribution(generator);
        if(randval<((int)lossbitprob*100)) 
             out_bitstream[i]=-1;
        else out_bitstream[i]=orbit[i];
    }

    return out_bitstream;
}
侦探眼

如果样本数量(size_orbit)足够大,则先前文章的代码

for(int i=0;i<size_orbit,i++)
{
  randval = (double)rand()/(double)RAND_MAX;
  if(randval<loss_percent) 
     out_bitstream[i]=-1;
  else out_bitstream[i]=orbit[i];
}

应该(无变化)收敛到所述理论结果。也就是说,如果要使用以下方法计算直方图:

int histogram[size_orbit+1] = {0};
for (int j=0; j<number_of_experiments; j++)
{
  int count = 0;
  for (int i=0; i<size_orbit; i++)
  {
    if (out_bitstream[i] == -1)
      count++;
  }
  histogram[count]++;
}

然后,每个实验中比特丢失总数的相对出现应收敛于具有Np均值和Np(1-p)方差的高斯分布。或者换句话说,每个实验中的丢失位数可能会显示为“视情况”,例如:

double mean        = size_orbit * loss_percent; // Np
double variance    = size_orbit * loss_percent * (1.0 - loss_percent); // Np(1-p)
double sigmarandom = sqrt(std::max(0.0, variance));
std::normal_distribution<double> distribution(mean,sigmarandom);
int lossbitcount = round(distribution(generator));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Matlab如何生成高斯分布随机数?

来自分类Dev

如何在具有高斯分布的两个值之间产生随机数

来自分类Dev

如何在高斯分布的两个值之间产生随机数

来自分类Dev

如何在一天内制作我的随机高斯分布

来自分类Dev

多重高斯分布

来自分类Dev

使图像适合高斯分布

来自分类Dev

如何在y轴上绘制高斯分布?

来自分类Dev

如何为ROI生成高斯分布强度?

来自分类Dev

如何提取适合R中的高斯分布的值?

来自分类Dev

rand()不遵循高斯分布和中心极限定理

来自分类Dev

rand()不遵循高斯分布和中心极限定理

来自分类Dev

如何在没有浮点数/双数的情况下生成均匀和高斯分布的伪随机数?

来自分类Dev

无法使用种子生成高斯分布

来自分类Dev

在高斯分布中生成HTTP请求

来自分类Dev

R中累积高斯分布的逆

来自分类Dev

多元高斯分布公式的实现

来自分类Dev

使用高斯分布的数的平方

来自分类Dev

使用高斯分布Python的方差

来自分类Dev

在多元高斯分布中应如何处理特征之一的零标准偏差

来自分类Dev

如何在 Python 中高效计算两个高斯分布的热图?

来自分类Dev

在Python中生成3D高斯分布

来自分类Dev

使用cenreg进行删失回归的高斯分布

来自分类Dev

Python-将整个列表与高斯分布集成

来自分类Dev

用固定的某些参数拟合双峰高斯分布

来自分类Dev

多元高斯分布张量流概率的混合

来自分类Dev

估计曲线与高斯分布的相似度(在Python中)

来自分类Dev

用3个高斯分布生成数组MATLAB

来自分类Dev

图像的MATLAB高斯分布的总和大于1

来自分类Dev

高斯随机分布的奇怪行为