用随机数创建一个数组

Posted

技术标签:

【中文标题】用随机数创建一个数组【英文标题】: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.跨度> 【参考方案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.

这里我也添加了排序。

【讨论】:

好答案。作为一种习惯,我会使用ThreadLocalRandom 而不是Random

以上是关于用随机数创建一个数组的主要内容,如果未能解决你的问题,请参考以下文章

首先创建一个长度是5的数组,并填充随机数。首先用选择法正排序,然后再对其使用冒泡法倒排序

随机数数组输出及求和

创建一个数组数组,其中每个数组有 10 个随机数

随机逗号出现在数组 ReactJS

在二维数组中随机生成簇

Unity3d在屏幕范围内随机生成一个圆