当前位置: 首页 > 知识库问答 >
问题:

需要在Java中使用随机数1-10填充数组而不使用0的帮助吗

郭和硕
2023-03-14

需要帮助使用随机数1-10填充数组,而不使用0。-创建一个包含100个整数的数组。我尝试过int随机=r.nextInt(High-low)低;但这会抛出每个数字的计数。

我需要在作业中做什么:

    < li >用1到10之间的随机数填充数组。(不为零) < li >确定数组中所有数字的平均值。 < li >计算100个数字的数组中每个数字出现的次数。这样做的第二个数组的大小为10个整数,并根据您在100个整数的数组中找到的重复数递增数组的每个元素。


package arrays;

import java.util.Arrays;
import java.util.Random;

public class Intergers {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Random r = new Random();

        // Create an array of 100 integers.
        int array[] = new int[100];

        int a = 0;

        // Populate the array with random numbers ranging from 1 to 10.
        while (a < 100)
        {
            int random = r.nextInt(10);
            array[a] = random;
            a++;
        }

        //calculate sum of all array elements
        int sum = 0;

         for(int i=0; i < array.length ; i++)
             sum = sum + array[i];

        //calculate average value
         double average = (double)sum/array.length;

        System.out.println("Array: " + Arrays.toString(array));
        // System.out.println("Sum: " + sum);
         //System.out.println("Array Length: " + array.length);
         System.out.println("Average value of array is: " + average);

         // Count the occurrence of each of the ten numbers in the array of 100
         int[] occurrences = new int[10];
         for (int b : array) {
                occurrences[b]++;
            }
         // System.out.println("Array: " + Arrays.toString(occurrences));



          System.out.println(1 + " appeared " + occurrences[0] + " times");
          System.out.println(2 + " appeared " + occurrences[1] + " times");
          System.out.println(3 + " appeared " + occurrences[2] + " times");
          System.out.println(4 + " appeared " + occurrences[3] + " times");
          System.out.println(5 + " appeared " + occurrences[4] + " times");
          System.out.println(6 + " appeared " + occurrences[5] + " times");
          System.out.println(7 + " appeared " + occurrences[6] + " times");
          System.out.println(8 + " appeared " + occurrences[7] + " times");
          System.out.println(9 + " appeared " + occurrences[8] + " times");
          System.out.println(10 + " appeared " + occurrences[9] + " times");




    }
}

共有2个答案

刁丰羽
2023-03-14

我有一个业余的方式做这件事。

  1. 创建包含 1-9 的数组列表
  2. 创建一个数组来存储 100 个整数
  3. 循环访问存储阵列,并在随机排列数组列表后存储第一项

实施:

    ArrayList<Integer> a = new ArrayList<>();
    for (int i = 1; i < 10; i++) {
        a.add(i);
    }
    int[] store = new int[100];
    for (int i = 1; i < 100; i++) {
        Collections.shuffle(a);            
        store[i] = a.get(0);

    }
沈飞翔
2023-03-14
int random = r.nextInt(10);

将得到0到9之间的伪随机int。只需添加1即可获得1到10之间的范围:

int random = r.nextInt(10) + 1;

您还必须调整对出现数组的处理,以考虑数组索引从0开始的事实:

     int[] occurrences = new int[10];
     for (int b : array) {
         occurrences[b-1]++;
     }

     for (int i = 0; i < occurences.length; i++) {
         System.out.println(i+1 + " appeared " + occurrences[i] + " times");
     }
 类似资料:
  • 问题内容: 我需要使用构造函数创建一个数组,添加一个将数组打印为序列的方法,以及一个使用double类型的随机数填充数组的方法。 到目前为止,这是我所做的: 我正在努力弄清楚如何用在randomFill方法中生成的随机数填充数组。谢谢! 问题答案: 您需要添加逻辑以使用 randomFill 方法将随机值分配给double []数组。 更改 至 然后,您可以调用方法,包括main方法中的list(

  • 我试图用2和5的随机值填充一个数组,但是生成的数字总是从0开始。具体问题如下,以及我目前拥有的代码。 (问题)创建一个名为TwoDarrayu_YourFirstName的公共类,成员如下: 带有头的方法:public静态空填充2DArray(int[][]ma)上述方法将填充ma引用的2D整数数组。数组元素值将在2到5之间随机生成。 到目前为止我的代码:

  • 问题内容: 我正在编写一个从整数n创建2D数组的程序。然后,我必须用从1到n n数组大小的 值填充数组, 并检查它是否是一个幻方。 我现在的方式是按照从1到n n数组大小的 顺序填充 数组。我该如何随机? 我的代码: 问题答案: 创建一个随机的数字列表以添加到您的数组中,如下所示:

  • 我正在尝试使用使用密码摘要模式的 Web 服务,并且我的 Java 应用程序中有这些功能来生成随机随机数、创建日期和密码摘要。我无法克服身份验证失败错误,并且文档不太清楚他们是否需要 SHA-1 或 MD5,因为它顺便提到了两者。我尝试了MD5而不是SHA-1,我得到了相同的结果。我设法通过 SoapUI 上的测试使请求工作,但我不知道该应用程序如何生成摘要/随机数。任何帮助,不胜感激。 下面是我

  • 我有一个细胞阵列<代码>公共静态小区[][]孤岛=新小区[3][3] 每个细胞都有x和y坐标以及“居住”在细胞内的动物列表。我需要用列表中的随机动物随机填充这个数组<代码>公共静态列表 最后,我有一堆空的细胞,我相信这部分是动物。子列表(initialcount,initialcount randomdata) 可以做得更优雅。如何用allanimals列表中的元素填充岛数组?这是我的手机课

  • 到目前为止,这就是我得到的,但我不太确定接下来该怎么办。我(认为)这里发生的是,它到达数组的第一个位置,在0,0处,并生成一个数字。然后转到1,1和2,2,依此类推。我不确定该从那里开始,我相信有一种更有效的方法可以一次填充整行或整列。 此外,我的编译器不允许我像平时一样使用cout或endl?它坚持我使用std::cout,我只是想知道为什么。