题目:
/*
* 随机生成50个数字(整数),每个数字的范围是10,50,统计每个
* 数字出现的次数以及出现次数最多的数字与它的个数,最后将每个数字
* 及其出现次数打印出来,如果某个数字出现次数为0,则不要打印它,
* 打印进按照数字的升序排列。
*/
第一种初步实现:
- public class ExerciseRandom
- {
- public static void main(String[] args)
- {
- final int arraylength = 50; //column
- final int arrayrow = 2; // Row
- int[][] random = new int[arraylength][arrayrow];
- for(int i=0;i<arraylength;i++)
- {
- random[i][0] = randm(10,50);
- }
- random = bubbleSort(random);
- countx(random);
- printArray(random);
- }
- //生成min到max之间的随机数,也可以使用util.Random方法
- public static int randm(int min,int max)
- {
- int m = (int)Math.rint(Math.random()*(max-min)+min);
- return m;
- }
- //冒泡排序
- public static int[][] bubbleSort(int[][] array)
- {
- boolean isswap=false;
- for(int i=0;i<array.length-1;i++)
- {
- for(int j=0;j<array.length-i-1;j++)
- {
- if( array[j][0] > array[j+1][0])
- {
- int temp = array[j][0];
- array[j][0] = array[j+1][0];
- array[j+1][0] = temp;
- isswap = true;
- }
- }
- if (isswap == false)
- return array;
- }
- return array;
- }
- //统计数组array中的值的出现次数
- public static void countx(int[][] array)
- {
- for(int i=0;i<array.length;i++)
- {
- for(int m=i;m<array.length;m++)
- {
- if(array[i][0] == array[m][0])
- {
- array[i][1] +=1;
- }
- else {
- i=m-1;
- break;
- }
- }
- }
- }
- private static void printArray(int[][] array)
- {
- for(int i=0;i<array.length;i++)
- {
- for(int j=0;j<array[0].length;j++)
- System.out.print(array[i][j]+" ");
- System.out.println();
- }
- }
- }
public class ExerciseRandom { public static void main(String[] args) { final int arraylength = 50; //column final int arrayrow = 2; // Row int[][] random = new int[arraylength][arrayrow]; for(int i=0;i<arraylength;i++) { random[i][0] = randm(10,50); } random = bubbleSort(random); countx(random); printArray(random); } //生成min到max之间的随机数,也可以使用util.Random方法 public static int randm(int min,int max) { int m = (int)Math.rint(Math.random()*(max-min)+min); return m; } //冒泡排序 public static int[][] bubbleSort(int[][] array) { boolean isswap=false; for(int i=0;i<array.length-1;i++) { for(int j=0;j<array.length-i-1;j++) { if( array[j][0] > array[j+1][0]) { int temp = array[j][0]; array[j][0] = array[j+1][0]; array[j+1][0] = temp; isswap = true; } } if (isswap == false) return array; } return array; } //统计数组array中的值的出现次数 public static void countx(int[][] array) { for(int i=0;i<array.length;i++) { for(int m=i;m<array.length;m++) { if(array[i][0] == array[m][0]) { array[i][1] +=1; } else { i=m-1; break; } } } } private static void printArray(int[][] array) { for(int i=0;i<array.length;i++) { for(int j=0;j<array[0].length;j++) System.out.print(array[i][j]+" "); System.out.println(); } } }
第二种初步实现
- import java.util.Random;
- public class ExerciseRandomTest2
- {
- public static void main(String[] args)
- {
- int[] count = new int[41]; //最多41种数字
- Random random = new Random();
- for(int i=0;i<50;i++)
- {
- int number = random.nextInt(41)+10; //生成的随机数
- System.out.println(number);
- //坐标为随机数-10,随机数存在数组中,如果随机数相同,则量变增加1
- count[number - 10]++;
- }
- for(int i = 0 ; i< count.length; i++)
- {
- if (0 == count[i])
- {
- continue;
- }
- System.out.println((10+i) + "出现交数:" + count[i]);
- }
- }
- }
import java.util.Random; public class ExerciseRandomTest2 { public static void main(String[] args) { int[] count = new int[41]; //最多41种数字 Random random = new Random(); for(int i=0;i<50;i++) { int number = random.nextInt(41)+10; //生成的随机数 System.out.println(number); //坐标为随机数-10,随机数存在数组中,如果随机数相同,则量变增加1 count[number - 10]++; } for(int i = 0 ; i< count.length; i++) { if (0 == count[i]) { continue; } System.out.println((10+i) + "出现交数:" + count[i]); } } }
转载于:https://blog.51cto.com/dengweihua1/528106