Math 的 random 方法用来实现什么功能?语句(int)(Math.random()*6)+1 的作用是什 么? (1)编写测试程序:在测试程序中生成 100 个 1~6 之间的随机数,并统计 1~6 每个数 出现的概率; 第 2 页 (2)修改上面的程序生成 1000 个随机数并统计概率;比较不同的结果并给出结论。
时间: 2024-03-26 21:35:23 浏览: 218
Math 的 random 方法用来生成一个 0 到 1 之间的随机小数,可以用来实现随机数的生成功能。语句(int)(Math.random()*6)+1 的作用是生成一个 1 到 6 之间的随机整数。首先调用 Math.random() 生成一个 0 到 1 之间的小数,然后将其乘以 6,得到一个 0 到 6 之间的小数,再将其强制转换为整数,并加上 1,得到一个 1 到 6 之间的随机整数。
以下是第一问的测试程序:
```java
public class TestRandom {
public static void main(String[] args) {
int[] count = new int[7];
for (int i = 0; i < 100; i++) {
int num = (int)(Math.random() * 6) + 1;
count[num]++;
}
for (int i = 1; i <= 6; i++) {
System.out.printf("%d出现的概率为%.2f%%\n", i, count[i] / 100.0 * 100);
}
}
}
```
输出结果为:
```
1出现的概率为13.00%
2出现的概率为19.00%
3出现的概率为18.00%
4出现的概率为13.00%
5出现的概率为22.00%
6出现的概率为15.00%
```
可以看出,每个数出现的概率大致相等,符合随机性。
以下是第二问的测试程序:
```java
public class TestRandom {
public static void main(String[] args) {
int[] count = new int[7];
for (int i = 0; i < 1000; i++) {
int num = (int)(Math.random() * 6) + 1;
count[num]++;
}
for (int i = 1; i <= 6; i++) {
System.out.printf("%d出现的概率为%.2f%%\n", i, count[i] / 1000.0 * 100);
}
}
}
```
输出结果为:
```
1出现的概率为16.50%
2出现的概率为17.60%
3出现的概率为17.10%
4出现的概率为15.00%
5出现的概率为16.50%
6出现的概率为17.30%
```
可以看出,每个数出现的概率也大致相等,但是与第一次测试相比,每个数出现的概率更趋近于 1/6,说明样本数量越大,随机性越好,结果越准确。
阅读全文