Java 如何使用限制为0-20的随机数填充数组
在数组中放置随机生成器时遇到问题,如何从数组中的0-9中获取20个随机数?然后计算这些数字的出现次数 导入java.util.Random 公共类计数位数{Java 如何使用限制为0-20的随机数填充数组,java,arrays,random,Java,Arrays,Random,在数组中放置随机生成器时遇到问题,如何从数组中的0-9中获取20个随机数?然后计算这些数字的出现次数 导入java.util.Random 公共类计数位数{ public static void main(String[] args) { Random digit = new Random(); int Random[] = new int [20]; int Digits[] = {0,1,2,3,4,5,6,7,8,9}; int Count
public static void main(String[] args) {
Random digit = new Random();
int Random[] = new int [20];
int Digits[] = {0,1,2,3,4,5,6,7,8,9};
int Count [] = new int [10];
for ( int i = 0; i < Digits.length; i++) {
for( int j = 0; j < Random.length; j++) {
if ( Digits [i] == Random [j] )
Count[i]++;
}
}
for ( int i = 0; i < Count.length; i++) {
if ( Count[i] == 1)
System.out.printf(" %d occurs 1 time " , Digits[i] );
else
System.out.printf("%d occurs %d times" , Digits[i], Count[i]);
}
迄今为止的结果:
0发生20次1发生0次2发生0次3发生0次4发生0次5发生0次6发生0次7发生0次8发生0次9发生0次您忘记了为数组元素分配随机数。若要查看随机数是如何生成的,请执行以下操作 您需要调用随机对象的nextIntan integer方法。如果您给它25,它将返回一个0-24(含0-24)之间的随机整数 用法示例: 随机兰德=新的随机; int random_int=rand.nextInt50;//--->随机整数0-49 完整代码: 导入java.util.Random; 公共班机{ 公共静态无效字符串[]args{ 随机数=新随机数; int Random[]=新int[20];
对于int x=0;x您需要实际获取一个随机数,并在范围内获取。将提供必要的功能,并包括一个.nextInt绑定,该绑定返回0和绑定之间的值: 公共int-nextint-bound 返回从该随机数生成器的序列中提取的伪随机、均匀分布的int值,该值介于0和指定值之间 比如:
Random rnd = new Random();
int num = rnd.nextInt(10); // returns between 0 and 9
鉴于此,您还有两个问题:
-生成20个数字
-计数
知道可能的条目数在0到9之间,使用数组保存计数是很容易的
int[] counts = new int[10]; // holds between 0 and 9
for (int i = 0; i < 20; ++i) {
int num = rnd.nextInt(10);
counts[num]++;
}
计数数组的输出将给出随机生成0到9之间给定数字的次数
查看一个您可以尝试以下方法:
创建一个长度为20的int数组,然后使用一个简单的for循环生成一个随机数,并将其放入数组中
int[]随机=新int[20];
forint i=0;i如何使用限制为0-20的随机数填充数组|如何从数组中的0-9中获得20个随机数-是哪一个?我在将随机生成器放置到数组中时遇到问题,为什么要这样做?您只需要一个随机生成器,为什么要将其放置在数组中?您希望将生成的随机数放置在数组中,所以o首先,将int Random[]=new int[20];更改为int[]number=new int[20];重复部分除了各种其他注释外,您还需要注意Java风格的约定。1变量的标识符不应以大写字母开头。2标识符的名称应反映变量的用途。因此,例如,调用随机数生成器数字是错误的。这不是错误的t一个数字。这是一个随机数生成器。在确定计数之前,我如何打印这20个数字?我在回答中添加了解释您的代码,这将帮助人们:
Random rnd = new Random();
int num = rnd.nextInt(10); // returns between 0 and 9
int[] counts = new int[10]; // holds between 0 and 9
for (int i = 0; i < 20; ++i) {
int num = rnd.nextInt(10);
counts[num]++;
}