我必须编写一个程序,从0到9生成1000次随机整数并计算重复数。所以输出应该是:
0使用了123次, 1使用了89次, 2 301次, 。 。 9使用了23次
我必须使用math.random。我可以生成数字但是如何使用数组和循环?
感谢。
答案 0 :(得分:1)
如果可以使用java.util.Random
,则不需要数组和循环。
试试这个。
System.out.println(new Random().ints(1000, 0, 10)
.boxed()
.collect(Collectors.groupingBy(i -> i, Collectors.counting()))
.entrySet().stream()
.map(e -> String.format("%d used %d times", e.getKey(), e.getValue()))
.collect(Collectors.joining(", ")));
结果
0 used 109 times, 1 used 97 times, 2 used 81 times, 3 used 107 times, 4 used 121 times, 5 used 100 times, 6 used 97 times, 7 used 96 times, 8 used 80 times, 9 used 112 times
答案 1 :(得分:0)
尝试使用此代码,您将获得所需的输出:
**import** java.util.HashMap;
**import** java.util.Map;
public **class** RandomCounting
{
static **Map**<Integer,Integer> result=new **HashMap**<Integer,Integer>();
static int[] a=new int[10];
public static void main(String[] args)
{
for (int i = 0; i < 1000; i++)
{
int value=(int)(Math.random()*10);
//System.out.print(value+" ");
switch(value)
{
case 0:result.put(0,a[0]++);break;
case 1:result.put(1,a[1]++);break;
case 2:result.put(2,a[2]++);break;
case 3:result.put(3,a[3]++);break;
case 4:result.put(4,a[4]++);break;
case 5:result.put(5,a[5]++);break;
case 6:result.put(6,a[6]++);break;
case 7:result.put(7,a[7]++);break;
case 8:result.put(8,a[8]++);break;
case 9:result.put(9,a[9]++);break;
}
//System.out.print(value+" ");
}
for (int i = 0; i < 10; i++)
{
System.out.println(i+" used "+result.get(i)+" times");
}
}
}