众数的应用-抽奖算法

我们看到各种平台上都有各种各样的抽奖方式,今天我们要介绍一种众数抽奖。

首先有成百上千个账号,每个账号的位数是一样的,并且由数字组成。

分别比较每个账号的每一位,并且计数,找出出现最多次数的那个数字,作为所在位数最终结果,最终组成中奖号码。

下面看代码实现。

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;//对数组进行归零处理,对下一位数进行计数
					}
				}
				
				
			
	}
}

 这样一个简单的众数法抽奖算法就编写成功了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值