关于java中 随机产生的问题 这段代码中int random = (int)(Math.random()*10); 是什么意思 为什么要 *10

作者&投稿:益龚 (若有异议请与网页底部的电邮联系)
java用Math.random() 随机数控制范围问题~

这是一段程序中的代码:
int randomNumber=(int)(Math.random()*8)+1;
所给出的注释是:得到一个1到8之间的随机整数。开始的时候不是很懂,于是翻书、上网找资料,但是得到的结果都是一样的。Math.random()的作用是得到0-1之间的随机数。那么是如何实现的呢?
仔细想一想其实并不是很复杂:Math.random()的取值应该是0-1(事实上取不到0和1)之间的随机小数,乘以8之后应该是0-8之间的随机小数,也就是0.****到7.****之间的小数(大于0而小于8),经过int类型转换之后,应该是0-7之间的随机整数,所以"+1"之后就会得到1-8之间的

生成1到1000之间的随机数再对array数组的大小取余,最终得到1到数组大小-1之间的整数

int random = (int)(Math.random()*10); //产生随机数

这段代码中,Math是数学类,random()是Math类中的一个方法,random本身只产生(0~1)之间的小数,
random()*10 意思是产生0~10之间的小数 ,int(random()*10)的意思是强制取整,把小数部分去掉只去整数部分,所以 就变成了 产生0~9之间的整数。

Math.random()其实就是一个写好的函数方法,随机获得在0和1之间的一个数,而*10是代表这个数乘以10的到的数字,然后将这个数字转化成int类型数字,然后赋给前面的random ,然后指向swithc条件语句,如果的到的那个random 的值与case后面的值相同,就执行那个case里面的语句

public static double random()
返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。
楼主switch的变量要在0到10内取,所以随机数应该乘以10!!

Math.random()范围是0-1

乘10强行转换int型之后 就是0-10随即数


巩义市15864226440: 关于java中 随机产生的问题 这段代码中int random = (int)(Math.random()*10); 是什么意思 为什么要 *10 -
邰柱还原: int random = (int)(Math.random()*10); //产生随机数 这段代码中,Math是数学类,random()是Math类中的一个方法,random本身只产生(0~1)之间的小数, random()*10 意思是产生0~10之间的小数 ,int(random()*10)的意思是强制取整,把小数部分去掉只去整数部分,所以 就变成了 产生0~9之间的整数.

巩义市15864226440: 一个关于Java中产生随机数的问题.急求,在线等,谢谢 -
邰柱还原: 可以的,nextFloat产生0-1浮点数,*5+1之后就是1-6 round是取最接近参数的整数值,这样可以取到6如果直接强制转换 int m = int(5*x+1)永远取不到6

巩义市15864226440: 关于java产生随机数的问题,附有代码 -
邰柱还原: 有0是正常的,只是不应该出现多个,因为你已经把出现过的过滤掉了 循环部分我有个想法,如果发现有重复的话,我就会重新生成一个随机数 你的程序好像是又要重新生成64个数,

巩义市15864226440: 如何在java中产生随机数? -
邰柱还原: 1. 在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他就是个100以内的随机,这个在j2me中没有. 2. 在java.util这个包里面提供了一个...

巩义市15864226440: Java怎么产生随机数 -
邰柱还原: 一、利用random方法来生成随机数. 在Java语言中生成随机数相对来说比较简单,因为有一个现成的方法可以使用.在Math类中,Java语言提供了一个叫做random的方法.通过这个方法可以让系统产生随机数. 二、通过Random类来生成随...

巩义市15864226440: JAVA中生成正负随机数问题? -
邰柱还原: Random的nextInt()方法默认是从[0-1)这样一个范围,没法生成负数, 随机数只能产生正数,不能产生负数. Random random = new Random(); int randonNum = random.nextInt(30); int i=0-randonNum; System.out.println(i); 这样得专到的就是-30到0之间的负属数了

巩义市15864226440: java随机数问题 -
邰柱还原: 方法一:生成两数之间的随机数 public class MathRondom { public static int GetEvenNum(double num1,double num2){ int s=(int)num1+(int)(Math.random()*(num2-num1)); if(s%2==0){ return s; } else return s+1; } public static void main(String[] args) ...

巩义市15864226440: 一个java 产生某个范围随机数的问题 -
邰柱还原: try this:Math.round(Math.random() * (b - a) + a)

巩义市15864226440: 统计(英文)当中binomial random variable 和成功实验的trials是什么 -
邰柱还原:[答案] 意思就是只有2面,distribution 分布只有2种不同的结果,不会有第三种的.意思就是你可以把所有的sample分为 success 和fail,实验(trials)就是指在通过所有实验,结果outcome只有s or f.

巩义市15864226440: java随机产生几个不同的字符 -
邰柱还原: java随机产生几个不同的字符 最近看到了一段代码,目的是随机产生几个不同的字符,看到这个需求第一感觉就是在已产生的字符基础上去判断新的字符是否已经出现,如果出现,就生成新的字符........按照这个逻辑自己敲了之后,发现时间复杂...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网