GKGaussianDistribution
一个随机数发生器,根据高斯分布法多重采样。
概括
重要
GameplayKit中提供的随机化服务适用于可靠地创建确定性的伪随机游戏机制,但不具备加密性。对于加密,混淆或密码使用,请使用描述“加密指南”的Security框架。
图一 由高斯分布产生的值的概率
在高斯分布中,最有可能随机采样分布中心附近的值,并降低产生较高或较低值的概率。要使用高斯分布生成随机数,请使用由其父类GKRandomDistribution定义的方法。
高斯分布的特征在于其平均和偏差特性。
平均值(也称为中值或预期值)是分布中心(其最低值和最高值属性之间的中间)的值,以及随机抽样产生的最可能的值。任何其他值越远离平均值,随机抽样的可能性就越小。
偏差值(也称为标准偏差或西格玛)表示了这些概率:由分布产生的值,68.27%在平均值的一个偏差内,95%的生成值在两个偏差之内,而100%的生成值在三个偏差。
注意
在高斯分布的标准数学模型中,99.7%的生成值在平均值的三个偏差之内,分布的范围是无穷大的。 GameplayKit放弃与平均值三个偏差的极不可能的值,以便对分布的范围设置有限的限制。
在高斯分布的标准数学模型中,99.7%的生成值在平均值的三个偏差之内,分布的范围是无穷大的。 GameplayKit放弃与平均值三个偏差的极不可能的值,以便对分布的范围设置有限的限制。
高斯分布出现在许多自然现象中,你可能会在游戏中建模。
例如,以下代码创建一个分布,其随机数生成相当于滚动三个六面骰子(也称为3d6),并对结果求和。
GKRandomSource *random = [[GKRandomSource alloc] init];
GKRandomDistribution *dice3d6;
dice3d6 = [[GKGaussianDistribution alloc]
initWithRandomSource:random lowestValue:3 highestValue:18];
// Roll the dice...
int diceRoll = [dice3d6 nextInt];
Topics
创建随机分布(Creating a Random Distribution)
- initWithRandomSource:lowestValue:highestValue:
使用指定的随机源初始化具有指定的下限和上限的高斯随机分布。
- initWithRandomSource:mean:deviation:
使用指定的随机源初始化具有指定平均值和偏差的高斯随机分布。
使用分销的特点(Working with Characteristics of a Distribution)
mean
分布的平均值(也称为预期值或中值)。
deviation
分布的标准偏差(也称为西格玛)。
关系
继承
GKRandomDistribution