关于Java里产生1-6随机数的方法

关于Java里产生1-6随机数的方法
[ 标签:java,爪哇 ]

一种是 (int)(Math.random()*10)%6+1

另一种 (int)(Math.random()*6)+1

这两种方法都可以产生1-6的随机数,但是问题在于产生1-6的几率是否相等。

第一种感觉是不相等的,第二种感觉是相等

高手来分析下
匿名 回答:5 人气:16 解决时间:2009-08-24 21:42
满意答案
好评率:0%

我认为2种方法产生的1~6的几率是相等的,都为1/6.

第一种(int)(Math.random()*10)%6得到0~6的随机数,每个数的产生的概率为1/7,再加上1,得到1~6的随机数,0不再出现,每个数产生的几率1/6.

另一种(int)(Math.random()*6)产生0~5,每个数产生的概率为1/6,再加上1,得到1~6的随机数,每个数产生的几率仍为1/6.
回答人的补充 2009-08-23 17:08

呃。。我又想了下,应该是这样的:

Math.random()随机产生0~0.9

第一种方法:(int)(Math.random()*10)随机产生0~9的数再%6,随机产生0~6的随机数,其中在0~9中:

0,6产生0

0,6产生0

回答人的补充 2009-08-23 17:22

郁闷,刚才不小心按提交了~
(int)(Math.random()*10)产生0~9的随机数,再%6,产生0~6的随机数。
最后加1,产生1~6的随机数。
在0~9的随机数中,要产生1~6的随机数,有:
0 产生 1
1 产生 2
2 产生 3
3 产生 4
4 产生 5
5 产生 6
6 产生 1
7 产生 2
8 产生 3
9 产生 4
这里产生1,2,3,4的概率都为2/10.
产生5,6的概率都为1/10


(int)(Math.random()*6)产生0~5随机数,再加1,得到1~6的随机数
在这里的0~5的随机数中,要产生1~6的随机数,有:
0 产生 1
1 产生 2
3 产生 4
4 产生 5
5 产生 6
这里1~6产生的概率均为1/6

综上,正如楼主所感觉,第1种方法产生1~6的几率是不相等的,第2种方法产生1-6的几率是相等的
评价答案

*
您已经评价过!
好:0
*
您已经评价过!
不好:0

*
您已经评价过!
原创:0
*
您已经评价过!
非原创:0

^_^Cyndi`▓

回答采纳率:31.4% 2009-08-23 12:40
满意答案
好评率:100%

用java.util.Random 类比较好用

Random r=new Random();

int i=r.nextInt(6)+1;

生成1到6的数字应该机率比较相等;

(int)(Math.random()*10)%6+1产生0到9内的整数再 得到1,2,3,4的概率大些

因为(int)(Math.random()*10)%得到的数是从0到9;0%6+1=1.。。。。。。5%6+1=6

……6%6+1=1.。。。。9%6+1=4;

所以不相等

另一种 (int)(Math.random()*6)+1

从0.1到0.9 *6得到数是int型是0,1,1,2,3,3,4,4,5,

+

回答人的补充 2009-08-23 12:52

+后,为1,2,2,3,4,4,5,5,6

仍不相等。

2,4,5的机率比较大。
评价答案

*
您已经评价过!
好:1
*
您已经评价过!
不好:0

*
您已经评价过!
原创:0
*
您已经评价过!
非原创:0

拨云子

回答采纳率:22.9% 2009-08-23 12:48
我有更好的回答
收藏
转载到QQ空间
转播到腾讯微博
相关知识

* •在 Java 中怎样产生1~10的随机数4回答2010-05-19
* •Java中怎样产生随机数和随机字母啊1回答2010-07-07
* •Java如何实现随机数?5回答2010-01-22

更多java产生随机数1-5相关知识>>
其他答案
math.random 产生的是什么
well

回答采纳率:28.9% 2009-08-23 12:02

*
您已经评价过!
好:5
*
您已经评价过!
不好:0

Math类的方法fandom随机生成一个0.0到1.0(不含1.0)之间的double值

(int)(Math.random()*10)产生0到9内的整数再 %6 确实可以得到 1~6的随机数,但是 7 8 9 %6 一样得到 1 2 3 ,是不是1 2 3 得到的几率会大一些些呢?呵呵

(int)(Math.random()*6)产生0到5内的整数,。。。你可以设计一个小程序来试验,发现它的六个数出现的几率是差不多的。

回答人的补充 2009-08-23 12:28

是random.打错字,嘿嘿

侊景國際

回答采纳率:23.9% 2009-08-23 12:27

*
您已经评价过!
好:5
*
您已经评价过!
不好:0

这是概率学的问题 概率肯定是一致的

当然如果想要想出彩票那样控制 就另说了
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用Java中的Random类来生成10个1-100的随机数,具体代码如下: ```java import java.util.Random; public class RandomDemo { public static void main(String[] args) { Random random = new Random(); for (int i = ; i < 10; i++) { int num = random.nextInt(100) + 1; System.out.println(num); } } } ``` 运行结果如下: ``` 48 89 17 95 72 11 84 57 2 98 ``` 其中,`random.nextInt(100)`表示生成-99之间的随机整数,再加上1就可以得到1-100之间的随机整数。循环10次即可生成10个随机数。 ### 回答2: Java语言生成随机数可以使用Random类实现,具体的步骤如下: 1. 首先需要导入Random类,可以在代码开头添加import java.util.Random;来实现。 2. 创建Random对象,可以通过new Random()来实现。例如:Random rand = new Random()。 3. 生成一个1-100的随机数,可以使用rand.nextInt(100) + 1来实现。其中rand.nextInt(100)会生成0-99的随机数,所以需要加上1才能生成1-100的随机数。 4. 将生成的随机数存入一个数组中,需要先定义一个数组并分配内存,例如:int[] arr = new int[10]。 5. 使用for循环生成10个随机数并存入数组中,例如: ``` for (int i = 0; i < 10; i++) { arr[i] = rand.nextInt(100) + 1; } ``` 6. 最终将生成的随机数输出,可以使用System.out.println()方法来实现,例如: ``` for (int i = 0; i < 10; i++) { System.out.println(arr[i]); } ``` 完整的代码实现如下: ``` import java.util.Random; public class RandomNumberDemo { public static void main(String[] args) { Random rand = new Random(); int[] arr = new int[10]; for (int i = 0; i < 10; i++) { arr[i] = rand.nextInt(100) + 1; } for (int i = 0; i < 10; i++) { System.out.println(arr[i]); } } } ``` 运行后即可在控制台输出10个1-100的随机数。 ### 回答3: Java是一种编程语言,可以通过使用随机数生成器来产生10个1-100的随机数。在Java中,可以使用Random类来生成随机数。以下是一种解决方法: ```java import java.util.Random; public class RandomNumberGenerator { public static void main(String[] args) { int[] randomNumbers = new int[10]; Random random = new Random(); for (int i = 0; i < randomNumbers.length; i++) { randomNumbers[i] = random.nextInt(100) + 1; } System.out.print("随机数为:"); for (int i = 0; i < randomNumbers.length; i++) { System.out.print(randomNumbers[i] + " "); } } } ``` 以上代码使用了Random类来生成10个随机数,random.nextInt(100)方法生成1-100之间的随机数。对于生成的随机数,我们使用一个int类型的数组randomNumbers来存储,并使用for循环遍历数组并输出到控制台。最后输出的结果如下: ``` 随机数为:45 68 3 90 31 79 27 96 96 47 ``` 这就是生成10个在1-100之间随机数方法

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值