Java 从用户输入中获取随机生成的范围
所以我试图让我的代码根据用户的输入生成一个随机数。我现在的陈述没有产生正确的范围Java 从用户输入中获取随机生成的范围,java,random,integer,Java,Random,Integer,所以我试图让我的代码根据用户的输入生成一个随机数。我现在的陈述没有产生正确的范围 secretNum = low + (int)(Math.random()* max); 其中,low是范围的最低部分,high是范围的最高部分。例如如果低值为5,高值为10,这会产生1-50的范围吗?(5*10)。我会用a来表示 您可以这样创建它: Random r = new Random(); int lowest = 10; int highest = 140; int randomMax = 1
secretNum = low + (int)(Math.random()* max);
其中,low是范围的最低部分,high是范围的最高部分。例如如果低值为5,高值为10,这会产生1-50的范围吗?(5*10)。我会用a来表示
您可以这样创建它:
Random r = new Random();
int lowest = 10;
int highest = 140;
int randomMax = 140-10;
int randomNumber = r.nextInt(randomMax) + 10;
从那以后,它就很容易使用了。对于从0(包含)到50(独占)的随机整数,只需执行以下操作:
int randomNumber = r.nextInt(50);
我想这会让你轻松很多。如果用户输入10和140,则执行以下操作:
Random r = new Random();
int lowest = 10;
int highest = 140;
int randomMax = 140-10;
int randomNumber = r.nextInt(randomMax) + 10;
这可能是最简单的方法。将用户输入保存在中的变量
:
String in = sc.nextLine();
然后创建java.util.Random
的实例,种子是输入的哈希:
Random r = new Random(in.hashCode());
int randomNumber = r.nextInt();
如果要生成一个介于最大值和最小值之间的随机数,请参阅
但是,你需要将C++转换成java:
C++:
爪哇:
如果只需要最大值,也可以使用r.nextInt(max)
注:
对于加密安全的随机数,请使用SecureRandom的实例