以数组大小 20 打印随机数并以索引号打印数字

Posted

技术标签:

【中文标题】以数组大小 20 打印随机数并以索引号打印数字【英文标题】:Print random numbers in array size 20 and print number in lndex number 【发布时间】:2015-10-17 16:18:21 【问题描述】:

问题:

编写一个程序来创建一个大小为 20 的数组来存储整数。然后,程序应生成 1 到 7 之间的随机数并将其插入到数组中。接下来,程序应该将数组打印为输出。 一个简单的子集是一个数组的一部分,它由一组相邻的 4 个元素组成。程序会生成一个介于 0 到 19 之间的随机数,它代表数组中的位置(即索引号)。然后,程序应该从该位置打印 4 个元素。该程序应考虑数组的边界。此程序没有用户输入。 您的程序必须至少包含以下方法: - insertNumbers,它将一个整数数组作为输入并将随机数存储在其中。 - computeLocation,生成位置随机数并返回。

程序的示例运行如下所示:

示例输出 #1: 阵列:2 7 4 3 1 5 7 2 3 6 2 7 1 3 2 4 5 3 2 6 随机位置:2 子集:4 3 1 5

示例输出 #2: 阵列:2 7 4 3 1 5 7 2 3 6 2 7 1 3 2 4 5 3 2 6 随机位置:18 子集:2 6 2 7

到目前为止,我发现了什么: 公共类 AssignmentQuestion3

public static int insertNumbers(int n1,int n2)

    int min = n1;
    int max = n2;        
    int randomNumber = min + (int) (Math.random() * (max-min)+1);
    return randomNumber;

public static int computeLocation(int l1,int l2)

    int min = l1;
    int max = l2;
    int computeLocation = min + (int) (Math.random() * (max-min) + 1);
    return computeLocation;


/**
 * @param args the command line arguments
 */
public static void main(String[] args) 
    // TODO code application logic here
int array[] =0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;

System.out.print("Arrays: ");
for(int i = 0; i < 20; i++)

    int random1 = insertNumbers(1, 7);
    array[i] = random1;
    System.out.print(array[i]+ " ");

【问题讨论】:

***.com != DoMyHomeWorkForFree.com :P 我做了一个随机数生成器,但已经被卡住了。 它继续打印数组,因为第一个数字将为 0,然后其余 19 位数字将是相同的数字。 设置计算随机数的上下限 向我们展示您到目前为止编写的代码,告诉我们它做了什么以及应该做什么。 【参考方案1】:

您计算 1 到 7(含)之间随机数的公式是错误的。它实际上是计算 2 到 7(含)之间的随机数。您的公式中只缺少一个括号。

所以这个:

int randomNumber = min + (int) (Math.random() * (max - min) + 1);

应该是这样的:

int randomNumber = min + (int) (Math.random() * ((max - min) + 1));

因为乘法是在加法之前完成的,所以您的版本实际上等于:

int randomNumber = min + (int) ((Math.random() * (max - min)) + 1);

【讨论】:

【参考方案2】:

一些可以帮助你的备注:

一)

public static int insertNumbers(int n1,int n2)

    int min = n1;
    int max = n2;        
    int randomNumber = min + (int) (Math.random() * (max-min+1));
    return randomNumber;

这是一个非常好的方法,但它不是insertNumbers。将其重命名为 generateIntBetween 并将其用作 insertNumbers 中的辅助函数。

B)

在您的作业中,它说要创建一个insertNumbers,它将整个数组作为参数并填充它。我不会为你写,但标题应该是这样的:

public static void insertNumbers (int[] array)

C)

int array[] =0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;

做同样的事情

int array[] = new int[20];

int[] array = new int[20];

(我更喜欢后者)

D)

看来您在完成作业的第 1 步时做得很好。 继续...下一步是创建一个方法“computeLocation”,您可以使用自己的generateIntBetween

【讨论】:

以上是关于以数组大小 20 打印随机数并以索引号打印数字的主要内容,如果未能解决你的问题,请参考以下文章

我的数组随机化函数打印相同的数组 [重复]

JQuery - 将随机数添加到数组中,然后在打印数组之前检查是不是有重复

4.产生10个1-100的随机数,并放到一个数组中 把数组中大于等于10的数字放到一个list集合中,并打印到控制台。 把数组中的数字放到当前文件夹的numArr.txt文件中

用随机数 80-100 填充数组并使用以数组作为参数的方法打印两种不同的方式

在 20 个整数的数组中搜索并计算单个随机数

随机不打印正确的最大值和最小值