我们看到各种平台上都有各种各样的抽奖方式,今天我们要介绍一种众数抽奖。
首先有成百上千个账号,每个账号的位数是一样的,并且由数字组成。
分别比较每个账号的每一位,并且计数,找出出现最多次数的那个数字,作为所在位数最终结果,最终组成中奖号码。
下面看代码实现。
package test;
public class text1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int [][]D= {
{0,1,2,3,4,5,6,7,8,9},
{0,1,2,3,4,5,6,7,8,9},
{9,8,7,6,5,4,3,2,1,0},
{4,5,3,1,3,2,3,4,6,7},
{3,4,7,1,9,0,6,6,4,3},
{3,1,4,4,3,2,6,6,7,7},
{3,4,6,6,2,2,1,1,8,4},
{5,7,9,8,7,5,5,5,5,6}
};
int[] zx=new int[10];
for(int i=0;i<D[0].length;i++) {
for(int j=0;j< D.length ;j++) {
if(D[j][i]==0) zx[0]++;
if(D[j][i]==1) zx[1]++;
if(D[j][i]==2) zx[2]++;
if(D[j][i]==3) zx[3]++;
if(D[j][i]==4) zx[4]++;
if(D[j][i]==5) zx[5]++;
if(D[j][i]==6) zx[6]++;
if(D[j][i]==7) zx[7]++;
if(D[j][i]==8) zx[8]++;
if(D[j][i]==9) zx[9]++;
}
int max=0,q=0;
for(int p=0;p<10;p++) {
//System.out.print(zx[ p]);
if(max<zx[p]) {//比较数字出现次数
max=zx[p];
q=p;//选出众数
}
}
System.out.println(q);
for(int z=0;z<10;z++) {
zx[z]=0;//对数组进行归零处理,对下一位数进行计数
}
}
}
}
这样一个简单的众数法抽奖算法就编写成功了。