【问题标题】:How do you generate specific random number? [duplicate]你如何生成特定的随机数? [复制]
【发布时间】:2015-06-07 16:18:18
【问题描述】:

我需要一个floatinteger,不是完全生成而是随机选择的。

我需要使用和导入math.random class吗?

例如,我有 3 个整数:1、6 和 3。我希望随机选择其中一个。

【问题讨论】:

    标签: java random libgdx integer


    【解决方案1】:

    从你想要的数字生成一个随机索引,然后从array中取出数字

    int []nums = {1,3,6};
    int max = nums.length - 1;
    int min = 0;
    Random rand = new Random();
    int randomNum = rand.nextInt((max - min) + 1) + min;
    System.out.println(nums[randomNum]);
    

    【讨论】:

      【解决方案2】:

      如果您想要三个值中的每一个,但顺序是随机的,那么您可以将它们放入一个数组中。并且,随机播放该数组,您可以使用Arrays.asList(T...)Collections.shuffle(List)。接下来,迭代数组中的值(可能使用for-each loop)。类似的东西

      public static void main(String[] args) {
          Integer[] arr = new Integer[] { 1, 6, 3 };
          Collections.shuffle(Arrays.asList(arr));
          for (int i : arr) {
              System.out.println(i);
          }
      }
      

      但是,如果您真的需要一次只选择一个随机值(比如 10 次),那么您可以使用 RandomnextInt(int) 以及 for 循环。这可能看起来像

      public static void main(String[] args) {
          int[] arr = new int[] { 1, 6, 3 };
          Random rand = new Random();
          for (int i = 0; i < 10; i++) {
              int index = rand.nextInt(arr.length);
              System.out.println(arr[index]);
          }
      }
      

      【讨论】:

        【解决方案3】:

        创建一个由允许的数字组成的数组(即new int[] {1, 6, 3}),然后在 0..length-of-array 范围内随机选择一个 int。在随机索引处选择值会产生你想要的结果。

        【讨论】:

          【解决方案4】:

          假设你有一个数组(希望你知道是什么)你可以做的数字:

          int choose = myNumbers[(int)Math.random() * myNumbers.length];
          

          【讨论】:

            【解决方案5】:

            您必须使用要随机获取的值创建一个数组。像这样:

            int [] values = {1,3,6};
            

            而且您永远不必忘记放置:

            Random rand = new Random();
            

            因为不放,Random函数就不能正常工作。

            那么,现在你可以像这样随机访问你的值了:

            int numObtained = rand.nextInt((values.length - 0) + 1) + 0;
            

            最终代码为:

            int [] values = {1,3,6};
            Random rand = new Random();
            int numObtained = rand.nextInt((values.length - 0) + 1) + 0;
            

            希望对你有帮助!

            【讨论】:

              【解决方案6】:

              这可能会有所帮助。

              int i[] = new int[]{3,4,6, 5, 8, 10, 14}; // given sets of array
              int randomIndex = (int) (Math.random() * i.length); // generates a random index
              System.out.println("random selected value " + i[randomIndex]);
              

              【讨论】:

                猜你喜欢
                • 2021-05-31
                • 1970-01-01
                • 1970-01-01
                • 2011-08-27
                • 2013-05-17
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2013-03-19
                相关资源
                最近更新 更多