用随机数创建一个数组
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
楼层 double
s,因此您将所有数组成员设置为 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
。以上是关于用随机数创建一个数组的主要内容,如果未能解决你的问题,请参考以下文章