利用数组创建100期彩票:比如说是双色球 1. 一期的号码有七个数组成: 6个红球1个蓝球 红球取值范围1-33 一期的号码中,红球不可以有重复 蓝球取值范围1-

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


// 100期双色球 
public class Demo4 {
public static void main(String[] args) {
Random random = new Random();
int[][] array = new int[100][7];
// 对array数组进行遍历
for (int i = 0; i < array.length; i++) {
// 对里层数组进行遍历
for (int j = 0; j < array[i].length; j++) {
// 对黑球进行赋值
if (j == 6) {
array[i][j] = random.nextInt(16) + 1;
break;
}
// 对红球进行赋值
// array[i][j]=temp[j]; --->temp=array[i];
int[] temp = array[i];
boolean isSame = true;
temp[j] = random.nextInt(33) + 1;
for (int k = 0; k < j; k++) {
if (temp[j] == temp[k]) { // array[i][j]=array[i][k]
j--;
isSame = true;
break;
}
if (!true) {
array[i][j] = array[i][k];
}
}
}
System.out.println("第" + (i + 1) + "期的双色球的数组为" + Arrays.toString(array[i]));
}
// numCount[0]=1 出现的次数
// 统计红球
int[] reds = new int[600];
int index = 0;
for (int i = 0; i < 100; i++) {
for (int j = 0; j < 6; j++) {
reds[index++] = array[i][j];
}
}
System.out.println("红球各个数字及所占比率");
calc(reds);


// 统计蓝球
int[] blues = new int[100];
int num = 0;
for (int i = 0; i < 100; i++) {
blues[num++] = array[i][6];
}
System.out.println("***********************************");
System.out.println("蓝球各个数字及所占比率");
calc(blues);
}


// 计算数组元素出现的次数及所占比率
public static void calc(int[] array) {
int[] r = new int[33];
for (int i = 0; i < array.length; i++) {
int temp = array[i];
// count用于计算元素出现的次数
int count = 0;
for (int j = 0; j < array.length; j++) {
if (temp == array[j]) {
count++;


}
}
// 避免后面出现与前面相同的值时,重复计算
r[temp - 1] = count;
System.out.println(temp + "\t出现了\t" + count + "次\t" + "比率为:" + (double) 100 * count / array.length + "%");
}
}


}

猜你喜欢

转载自blog.csdn.net/wb19930301/article/details/80608941
今日推荐