在 Java 中生成遵循正态分布的数字

Man*_*noj 6 java random algorithm normal-distribution

我想(随机)生成数字,使数字遵循给定均值和方差的正态分布。我怎样才能实现这个目标?

如果能在Java的上下文中给出这个就更好了。人们可能会在这些答案中寻求帮助:但它们并不精确。 在 C/C++ 中生成遵循正态分布的随机数

Rob*_*bAu 5

无耻地用谷歌搜索并取自:http://www.javapractices.com/topic/TopicAction.do?Id =62

“魔法”发生在里面Random.nextGaussian()

import java.util.Random;

/** 
 Generate pseudo-random floating point values, with an 
 approximately Gaussian (normal) distribution.

 Many physical measurements have an approximately Gaussian 
 distribution; this provides a way of simulating such values. 
*/
public final class RandomGaussian {

  public static void main(String... aArgs){
    RandomGaussian gaussian = new RandomGaussian();
    double MEAN = 100.0f; 
    double VARIANCE = 5.0f;
    for (int idx = 1; idx <= 10; ++idx){
      log("Generated : " + gaussian.getGaussian(MEAN, VARIANCE));
    }
  }

  private Random fRandom = new Random();

  private double getGaussian(double aMean, double aVariance){
    return aMean + fRandom.nextGaussian() * aVariance;
  }

  private static void log(Object aMsg){
    System.out.println(String.valueOf(aMsg));
  }
} 
Run Code Online (Sandbox Code Playgroud)