Java 为什么这个Math.random()语句以这种格式列出?
我是Java的完全初学者,所以我很抱歉这可能是一个非常愚蠢的问题。这是一个猜测两个随机数的程序。为什么Math.random后面跟“*(MAX+1-MIN)))+MIN;”。另外,Math.random如何知道生成一个介于1和3之间的数字,而不是更高的数字Java 为什么这个Math.random()语句以这种格式列出?,java,random,Java,Random,我是Java的完全初学者,所以我很抱歉这可能是一个非常愚蠢的问题。这是一个猜测两个随机数的程序。为什么Math.random后面跟“*(MAX+1-MIN)))+MIN;”。另外,Math.random如何知道生成一个介于1和3之间的数字,而不是更高的数字 Scanner scan = new Scanner(System.in); final int MIN = 1, MAX = 3; int firstAnswer = ((int)(Math.random() * (MAX +
Scanner scan = new Scanner(System.in);
final int MIN = 1, MAX = 3;
int firstAnswer = ((int)(Math.random() * (MAX + 1 - MIN))) + MIN;
int secondAnswer = ((int)(Math.random() * (MAX + 1 - MIN))) + MIN;
int firstGuess, secondGuess;
谢谢你的帮助 Math.random()
生成一个介于0(包括)和1(不包括)之间的双精度
数字
与
(MAX+1-MIN)
相乘,转换为int
,再加上MIN
,将生成的double
转换为int
值,该值介于1
和3Math.random()
生成[0,1]范围内的double
。如果将其乘以(3+1-1),并将其转换为int,则得到范围[0,3]内的一个数字。由于该数字现在是int
,这意味着它在范围[0,2]内。如果将其与1相加,则得到范围[1,3]内的一个整数,即1、2或3。如果此处的任何答案有帮助,您可能希望接受他们的解决方案。除非您的问题仍未解决,否则您可以留下评论。