Files
2026-03-04 10:03:45 +08:00

33 lines
582 B
C#

using UnityEngine;
namespace Voxus.Random
{
public class RandomGaussian : AbstractRandom
{
private float sigma;
private float mu;
public RandomGaussian(float sigma = 1f, float mu = 0f)
{
this.sigma = sigma;
this.mu = mu;
}
public override float Get()
{
float num;
float num3;
do
{
num = 2f * (float)random.NextDouble() - 1f;
float num2 = 2f * (float)random.NextDouble() - 1f;
num3 = num * num + num2 * num2;
}
while (num3 >= 1f);
num3 = Mathf.Sqrt(-2f * Mathf.Log(num3) / num3);
return num * num3 * sigma + mu;
}
}
}