java实现取二项分布随机数
时间: 2023-07-18 12:19:11 浏览: 52
Java中可以使用Apache Commons Math库来实现取二项分布随机数。
以下是一个简单的示例代码:
```java
import org.apache.commons.math3.distribution.BinomialDistribution;
public class BinomialDistributionExample {
public static void main(String[] args) {
// 创建一个n为10,p为0.5的二项分布
BinomialDistribution binomial = new BinomialDistribution(10, 0.5);
// 生成一个随机数
int randomNum = binomial.sample();
System.out.println("随机数:" + randomNum);
}
}
```
在这个示例中,我们创建了一个n为10,p为0.5的二项分布,并使用`sample()`方法生成一个随机数。可以多次调用`sample()`方法来生成多个随机数。
需要注意的是,使用Apache Commons Math库需要先导入相应的jar包。
相关问题
java实现取离散分布随机数
在 Java 中,可以使用 `java.util.Random` 类中的 `nextInt(int n)` 方法来生成服从离散分布的随机数。该方法返回一个 0(包含)到 n(不包含)之间的整数,即生成的随机数的取值范围为 [0, n-1]。
如果需要生成服从离散分布的随机数,需要先计算每个取值的概率,并将其按照概率转化成区间。然后,生成一个 0 到 1 之间的随机数,根据该随机数落在哪个区间来确定生成的随机数的取值。
下面是一个生成服从离散分布的随机数的示例代码:
```java
import java.util.Random;
public class DiscreteRandomNumberGenerator {
public static void main(String[] args) {
// 创建一个 Random 实例
Random random = new Random();
// 定义离散分布的各个取值和对应的概率
int[] values = {1, 2, 3, 4, 5};
double[] probabilities = {0.2, 0.3, 0.1, 0.2, 0.2};
// 将概率转化成区间
double[] intervals = new double[probabilities.length];
intervals[0] = probabilities[0];
for (int i = 1; i < probabilities.length; i++) {
intervals[i] = intervals[i - 1] + probabilities[i];
}
// 生成 10 个服从上述离散分布的随机数
for (int i = 0; i < 10; i++) {
double randomValue = random.nextDouble(); // 生成一个 0 到 1 之间的随机数
int index = 0;
while (randomValue > intervals[index]) {
index++;
}
int value = values[index];
System.out.println(value);
}
}
}
```
运行以上代码,可以得到 10 个服从给定离散分布的随机数。
java实现三位数随机数
要在Java中实现三位数的随机数,可以使用以下方法之一:
方法一: 使用java.util.Random类的nextInt()方法
```java
import java.util.Random;
public class Main {
public static void main(String[] args) {
Random random = new Random();
int randomNumber = random.nextInt(900) + 100;
System.out.println(randomNumber);
}
}
```
方法二: 使用Math.random()方法
```java
public class Main {
public static void main(String[] args) {
int randomNumber = (int) (Math.random() * 900) + 100;
System.out.println(randomNumber);
}
}
```
方法三: 使用ThreadLocalRandom类
```java
import java.util.concurrent.ThreadLocalRandom;
public class Main {
public static void main(String[] args) {
int randomNumber = ThreadLocalRandom.current().nextInt(100, 1000);
System.out.println(randomNumber);
}
}
```