计算人口的概率

时间:2015-02-11 18:32:14

标签: c# probability

标题可能无法描述我实际上想要做的事情,因为我不确定它的确切内容。

我试图计算人口中每个项目都有被选中概率的人口结果(使用c#)。例如,假设有十个人,并且有10%的可能性将选择任何给定的人作为结果。因此对于结果1可能选择了3个人但是对于结果2可能选择了0个。

我理解如何在10%的几率下计算1人的结果:

Random r = new Random();
double v = r.nextDouble();

if (v <= 0.10) { return 1; }
return 0;

但是我如何在特定人群中这样做呢?

2 个答案:

答案 0 :(得分:1)

如果您尝试提取Person(人口)列表的10%, 给定Person列表,您可以选择其中一些:

Random r = new Random();
List< Person > population;
// fill the population list
var selectedPopulation = population.Where( x=> r.nextDouble() < 0.1 ).ToList();

然后您可以迭代选定的人:

foreach( var person in selectedPopulation )
{
   // do you work
}

答案 1 :(得分:1)

根据我的理解,您需要一个能够获取人口规模和单个事件的给定概率的函数,并提供随机结果?

类似于:

public int Outcome(int p, int n){
     var random = new Random();
     int count = 0;
     int rnd = 0;
     for (var i = 0; i < n; i++)
     {
          rnd = random.Next(0, 100);
          if (rnd <= p) count++;
     }

     return count;
}

其中p是单个事件作为百分比的概率(在您的示例中为10),n是总体大小(在您的示例中再次为10)。

相关问题