Java 获得相同的随机数
我想生成一个随机数应用于一些数组,以便在每次执行中获得不同的元素。 数组包含运动产品的名称(产品、尺寸、价格等)。通过这样做,我想随机生成一个字符串,但是在程序的每次执行中,我都得到相同的结果 问题在哪里 下面是generaProductos类中的代码:Java 获得相同的随机数,java,random,Java,Random,我想生成一个随机数应用于一些数组,以便在每次执行中获得不同的元素。 数组包含运动产品的名称(产品、尺寸、价格等)。通过这样做,我想随机生成一个字符串,但是在程序的每次执行中,我都得到相同的结果 问题在哪里 下面是generaProductos类中的代码: public void generaProductos() { int num; for (int i=0;i<3;i++){ num = (int) Math.random() * 3;
public void generaProductos() {
int num;
for (int i=0;i<3;i++){
num = (int) Math.random() * 3;
String cliente = tipoProducto[num] + " " + deporte[num] + " " +
destinatario[num] + " " + color[num] + " " + tallaRopaAdulto[num]
+ " " + preciosIVA[num];
System.out.println(cliente);
}
return;
}
当我执行代码时,我总是收到以下信息:
Botas Futbol Hombre Marron S 16.99
Botas Futbol Hombre Marron S 16.99
Botas Futbol Hombre Marron S 16.99
(在英语中是橄榄球靴男式棕色尺码S 16.99)您将0和1之间的浮点值(排除)转换为
int
,结果为0,然后将0乘以3,仍然为0
改变
(int) Math.random() * 3
(int) (Math.random() * 3)
到
由于优先顺序的原因,将始终为0
Math.random()
总是<1
,因此将其转换为int
将得到0,然后进行乘法,仍然得到0。您可以使用java的数学库生成随机整数。如果您使用Math.random()
,那么您将只得到0.0到0.1范围内的随机数
如果您想在大范围的整数之间取随机整数,那么您可以通过提供两个整数输入(即最小值和最大值)来使用以下函数
public static int RandInt(int max, int min){
return ((int) (Math.random()*(max - min))) + min;
}
我想你的意思是
Math.random()
会给出一个介于0和1之间的随机数yes。。java中lang包的Math.random()返回一个带正号的双精度值,大于或等于0.0,小于1.0,然后您可能希望在答案中更正它!
num = (int) Math.random() * 3;
public static int RandInt(int max, int min){
return ((int) (Math.random()*(max - min))) + min;
}