提问者:小点点

如何生成服从正态分布模式的随机数?


我将需要初始化一个'n'数量的类,将有一个随机值附加到他们从1到100。

我知道如何创建一个介于1和100之间的随机值,但我如何使所有的值都落在一个正态分布模式?

+ (int)randomIntBetweenMinimum:(int)minimum maximum:(int)maximum {
    
    return (int)(minimum + arc4random_uniform(maximum - minimum + 1.0f));
}

共1个答案

匿名用户

有一些API可以生成高斯分布。

我相信您可以通过以下操作来获得您正在寻找的内容:

GKRandomSource *random = [[GKRandomSource alloc] init];
GKRandomDistribution *distribution;
distribution = [[GKGaussianDistribution alloc]
              initWithRandomSource:random lowestValue:1 highestValue:100];

int randomVal = [distribution nextInt];