【问题标题】:Create an Array with random numbers用随机数创建一个数组
【发布时间】:2020-10-21 08:31:06
【问题描述】:

如何在 main 方法中创建一个大小为 256 且具有排序随机数的数组? 我想创建一个随机生成 1-256 之间数字的数组,大小也是 256,这意味着数组中有 256 个数字并且它们被排序。 我的代码只返回零?

public class Array {
    public static void main(String args[]) 
    { 
        double[] randomarray = new double[256];
        for(int i = 0; i<randomarray.length;i++)
            randomarray[i] =  Math.random();
        
        for (int i = 0; i<randomarray.length;i++)
            System.out.println(randomarray[i]);
    }
}

【问题讨论】:

  • 嘿!你觉得(int) Math.random() 能给你什么?
  • 试试int[] randomarray = new Random().ints(256, 1, 256 + 1).toArray();
  • 随机数?
  • 我不知道你是怎么得到零的。 Math.random() 为您提供从 0 到 1 的伪随机数,因此您可以将其乘以您的范围,例如256.跨度>

标签: java arrays sorting random main


【解决方案1】:

Math.random() 返回介于 0.0 和 1.0 之间的 double,并转换为 int 楼层 doubles,因此您将所有数组成员设置为 0。您需要将 @987654325 相乘@ 在您将其转换为 int 之前按您想要的最大值。

【讨论】:

  • @Jack:阅读答案的最后一句话。请不要在 cmets 中发布重要代码。
【解决方案2】:

作为@saka1029 commented,最简单(更少代码)的方法是创建一个IntStream,这是一个int 值流,由对Random.ints 的调用产生。

int[] sortedRandoms = 
    new Random()              // Access a random-number generator.
    .ints(256, 1, 256 + 1)    // Generate a stream of int values, an `IntStream` object.
    .sorted()                 // Sort those generated `int` values.
    .toArray();               // Return the generated `int` values in an array.

这里我也添加了排序。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多