繁体   English   中英

生成0到y之间的随机数,x是java中生成的数量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM