`

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

    博客分类:
  • JAVA
阅读更多

关于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

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

当然如果想要想出彩票那样控制 就另说了
分享到:
评论

相关推荐

    0-100随机数生成器

    总的来说,"0-100随机数生成器"是一个使用JAVA编写的、可以在无JAVA环境的机器上运行的工具,它利用了JAVA的`Random`类或其他随机数生成机制,可能包含用户友好的界面和/或定制的随机数算法。对于那些需要在多种环境...

    java练习java.lang.Math随机数

    你中过奖么?利用java实现一个35选7的彩票中奖号码产生程序。随机产生7个1至35之间(包括1和35)的不重复整数,并输出...随机数生成方法见JDK API的java.lang.Math类的random函数。(练习循环与break、continue、数组)

    java产生随机数的几种方式

    在Java编程语言中,生成随机数是常见的需求,可以用于各种场景,如模拟随机事件、游戏编程、加密算法等。以下将详细介绍Java中生成随机数的几种方式。 1. **Math.random() 方法** `Math.random()` 是Java中最常用...

    java中产生随机数的两个方法

    Java 中产生随机数的两个方法 在 Java 语言中,产生随机数的需求非常常见,无论是在游戏开发、数据模拟还是其他应用场景中,随机数都是必不可少的。Java 中提供了两种方式来生成随机数:一是通过 Math.random() ...

    产生10000-10000000的随机数 并写入TXT文档中

    产生10000-10000000的随机数 并写入TXT文档中

    java产生不重复的随机数

    java代码产生不重复的随机数,有用处,可以参考!

    Java产生随机数的两种方式

    本文将详细探讨Java中生成随机数的两种主要方法:`java.lang.Math.random()`静态方法和`java.util.Random`类。 首先,我们来看`java.lang.Math.random()`方法。这是一个静态方法,不需要实例化对象就可以直接调用。...

    Java产生随机数代码 各种方法

    `nextInt(int bound)`方法会生成0到bound-1之间的随机数,如果需要生成指定范围内的随机数,可以调整边界: ```java int min = 1; int max = 100; int randomNum = rand.nextInt(max - min + 1) + min; ``` ...

    在Java中产生随机数的两个方法

    ### 在Java中产生随机数的两种方法 在Java编程中,生成随机数是常见的需求之一。根据提供的文件信息,本文将详细介绍两种在Java中生成随机数的方法:通过`Math.random()`函数与`java.util.Random`类。这两种方法各...

    java组件设计(6)随机数操作

    java组件设计(6)随机数操作

    介绍java 产生随机数式

    - 对于更复杂的需求,例如产生符合特定概率分布的随机数(如正态分布、泊松分布等),可以使用Apache Commons Math库或Java 8引入的`java.util.stream.DoubleStream`配合`IntStream`生成。 总的来说,Java的`...

    JAVA中的随机数产生和排序

    总之,理解和掌握Java中的随机数生成和排序方法对于编写高效、可靠的程序至关重要。在实际应用中,你可以根据需求选择合适的工具和策略,如在性能和安全之间做出权衡,或在排序时引入个性化逻辑。不断学习和实践,...

    Java获取计算机信息和产生随机数

    主要是一个Java获取计算机基本信息并且在Web页面上以ExtJs4的图表展示,这里删除了ExtJs4的资源和一个算法产生验证码,因为这个算法最终使用到了产品中,所以就把这个测试的类删除了,各位不好意思了

    java语言产生一个0-9的随机数代码正确版.txt

    java语言产生一个0-9的随机数代码正确版.txt

    随机数个火球相撞--自动产生随机数

    这里提到的"随机数个火球相撞--自动产生随机数"是一个典型的编程示例,可能是在一个游戏中,通过火球之间的碰撞来动态生成随机数量的新的火球。下面我们将深入探讨随机数生成的相关知识点。 首先,随机数分为伪随机...

    Java 产生不重复随机数四种方法

    // 在0到n-1之间生成随机数 uniqueSet.add(randomNum); } System.out.println("生成的不重复随机数: " + uniqueSet); } } ``` ### 方法二:使用ArrayList与remove() 另一种方法是使用 **ArrayList**。同样...

    Java基础之Random随机数.docx

    在Java中,Random类提供了产生随机数的方法,下面将详细介绍Random类的使用。 Random类的使用 Random类是Java中生成随机数的主要类,它提供了多种方法来生成随机数。下面是Random类的一些常用方法: * `nextInt()...

    java生成十个不重复的随机数

    要实现这个功能,我们需要利用到Java的集合框架和Math类中的随机数生成方法。下面我们将详细讲解如何实现这个需求。 首先,Java的`java.util.Random`类是生成随机数的主要工具。它可以生成指定范围内的整数或浮点数...

Global site tag (gtag.js) - Google Analytics