【问题标题】:Generating random numbers between 0 and y and x being the amount generated in java生成0到y之间的随机数,x是java中生成的数量
【发布时间】:2016-01-01 00:37:02
【问题描述】:

我需要帮助来生成 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));


        }

    }

}

//这段代码生成随机数就好了!现在我需要对它们进行分类! //这几行下面的代码有太多语法错误 //我可以在上面的代码中添加什么以使其成为//此信息的简单组织,我需要创建一个数组,然后对其进行组织。 //下面是我的失败尝试,谁能把上面的代码简单点?

 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 + " ");
    }
    }
    }

【问题讨论】:

    标签: java arrays random


    【解决方案1】:

    尝试先将increasingRandoms(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);
      }
    

    【讨论】:

      【解决方案2】:

      如果您能够使用 Java 8,那么有一个不错的简单解决方案:

      int[] myRandomNumbers = new Random().ints(x, 0, y).sorted().toArray();
      

      【讨论】:

        猜你喜欢
        • 2012-04-18
        • 2014-04-11
        • 2011-08-10
        • 1970-01-01
        • 2011-04-29
        • 1970-01-01
        • 1970-01-01
        • 2012-01-12
        • 2011-07-07
        相关资源
        最近更新 更多