[英]Generating random numbers between 0 and y and x being the amount generated in java
我需要帮助生成0到y之间的随机数,而x是java中生成的数量,因为你可以看到我几乎就在那里,但最后将它们排序,给我带来麻烦请帮助我纠正错误!
//imports
import java.util.Scanner;
import java.util.Random;
//Class
public class RandomGen {
//Main Method
public static void main(String[] args) {
//Prepare Scanner
Scanner randomScanner = new Scanner(System.in);
System.out.println("Between 0 and what integer would you like to generate random Integers? ");
int y = randomScanner.nextInt();
System.out.println("Please Specify the number of Random integers you would like:");
int x= randomScanner.nextInt();
Random pseudo = new Random();
//Initialize Random
for(int i =0; i<x; i++) {
System.out.println(pseudo.nextInt(y+1));
}
}
}
//这段代码生成Randoms就好了! 现在我需要它们排序! //这些行下面的代码有太多的语法错误//我可以添加到上面的代码中,使这个信息组成一个简单的组织,我需要创建一个数组然后组织它。 //以下是我失败的尝试,任何人都可以保持ABOVE代码简单吗?
import java.util.Arrays;
import java.util.Scanner;
import java.util.Random;
public class RandomInt {
public static void main(String[] args) {
int[] increasingRandoms(int x, int y);
{
//establishing an array
Scanner randomScanner = new Scanner(System.in);
System.out.println("Between 0 and what integer would you like to generate random Integers? ");
y = randomScanner.nextInt();
System.out.println("Please Specify the number of Random integers you would like:");
x= randomScanner.nextInt();
//Setting x to pseudoRandom into an array in order to sort later
int[] pseudoRandom = new int [x];
for(int i =0; i< x; i++){
Random pseudo = new Random();
pseudoRandom[i] = pseudo.nextInt(y);
}
//returning an array in ascending order
Arrays.sort(pseudoRandom);
return pseudoRandom;
}
for(int number : increasingRandoms(y, x)) {
System.out.print(number + " ");
}
}
}
首先尝试将incrementRandoms(x,y)返回的数组存储在变量中,然后在增强for循环中使用该变量,而不是直接使用该方法。
int[] temp=increasingRandoms(y, x);
for(int number : temp) {
System.out.print(number + " ");
}
另外,我不明白你为什么要在每次循环迭代中创建一个新对象,最好在进入循环之前创建一个Random对象,然后在循环中调用nextInt(int)
int[] pseudoRandom = new int [x];
Random pseudo = new Random();
for(int i =0; i< x; i++){
pseudoRandom[i] = pseudo.nextInt(y);
}
如果您能够使用Java 8,那么这是一个很好的简单解决方案:
int[] myRandomNumbers = new Random().ints(x, 0, y).sorted().toArray();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.