import java.util.Arrays;
/**
 * @author 小狐狸狗狗(TailsFly)
 * @date 2015年2月16日
 * 
 *  @说明:2015年国治水区奖励随机生成
 */
public class Demo {
        
        static int level1[]={20,5,2,1,0,0,0};//对应新手场 1 2 5 10 20 50 100元的数量
        static int level2[]={0,15,6,2,1,0,0};//对应普通场 1 2 5 10 20 50 100元的数量
        static int level3[]={0,0,10,5,5,1,0};//对应豪华场 1 2 5 10 20 50 100元的数量
        static int level4[]={0,0,0,10,5,2,1};//对应至尊场 1 2 5 10 20 50 100元的数量
        public static void main(String args[]){
                
                init(level1,150);//新手场
                init(level2,150);//普通场
                init(level3,100);//豪华场
                init(level4,100);//至尊场
                
        }
        
        /**
         * @param level 当前场次对应1 2 5 10 20 50 100元奖励个数的数组
         * @param count 当前场次所对应的最大选号数
         */
        public static void init(int level[],int count){//初始化奖励的数量
                
                int num[]=new int[count];//定义数组的数量
                Arrays.fill(num, 0);//初始化数组全部为0
                
                int RMB1=level[0];//初始化1元奖励的总数量
                int RMB2=level[1];//初始化2元奖励的总数量
                int RMB5=level[2];//初始化5元奖励的总数量
                int RMB10=level[3];//初始化10元奖励的总数量
                int RMB20=level[4];//初始化20元奖励的总数量
                int RMB50=level[5];//初始化50元奖励的总数量
                int RMB100=level[6];//初始化100元奖励的总数量
                
                for(int i=0;i<count;i++){//把奖励按顺序写到数组中
                        if(RMB1!=0){
                                num=1;
                                RMB1--;
                                continue;
                        }
                        if(RMB2!=0){
                                num=2;
                                RMB2--;
                                continue;
                        }
                        if(RMB5!=0){
                                num=5;
                                RMB5--;
                                continue;
                        }
                        if(RMB10!=0){
                                num=10;
                                RMB10--;
                                continue;
                        }
                        if(RMB20!=0){
                                num=20;
                                RMB20--;
                                continue;
                        }
                        if(RMB50!=0){
                                num=50;
                                RMB50--;
                                continue;
                        }
                        if(RMB100!=0){
                                num=100;
                                RMB100--;
                                continue;
                        }
                }
                
                random(num);//执行随机打乱算法
                
        }
        
        /**
         * @param num 需要打乱的数组
         */
        public static void random(int num[]){//进行打乱奖励的算法
                
                int count=1;//当前的号码
                
                for(int i=0;i<num.length;i++){
                        int a=(int)(Math.random()*num.length);//生成随机数
                        int b=num[a];//定义一个中间变量存放随机生成编号所对应的奖励
int c=num;//定义一个中间变量存放当前循环编号所对应的奖励
num=b;//使当前循环的编号与随机生成的编号奖励互换
num[a]=c;//使随机生成的编号奖励与当前的编号奖励互换
                }
                
                for(int a:num){                
                        System.out.println(count++ + ":" + a+"元");//遍历输出本次随机产生的奖励
                }
                
                count=1;//初始化当前号码,方便其他场次统计
                
        }
        
}