随机函数练习

该博客介绍了一个抽奖程序的设计,可设置序号数字位数、最大序号、每次抽取中奖序号数量和总中奖人数。抽奖分多轮进行,最后显示所有中奖序号。实验中设置总中奖人数为 5 人,进行了三轮抽奖,最终得出中奖序号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设计一个抽奖程序,程序通过随机方式产生中奖序号。程序可以设置序号包含数字位数
和最大序号,一次抽取几个中奖序号(最少 1 个序号,最多不超过 2 个序号)和总共中奖
人数(最少 5 人)。抽奖过程分多轮进行,最后现实出所有的中奖的序号。

package 随机函数练习;
import java.util.*;


public class RandomPratice {
	
	public static void main(String[] args)
	{
		int people=-1111,bit=0,max=0,x=0,num=0;
		int n=0,flag=0,i=1;           //控制条件
		Scanner scanner=new Scanner(System.in);
        Random rand=new Random();
        
        System.out.println("请输入中奖人数,最少为五人");
        
        do {
       
        	if(people!=-1111)
        		
        	System.out.println("请重新输入,最少五人");
        	
        	people=scanner.nextInt();
         
        	       
        }while(people<5);
       
        int[] array = new int[people];
        
      
      for(i=1;flag<people;i++) {
        	
        	System.out.println("第"+i+"轮抽奖开始");
        	
        	System.out.println("请输入序号数字位数:");
        	 
        	bit=scanner.nextInt();
			bit=(int)Math.pow(10, bit-1);   //算出设置位数的最小数
		     	if(bit==1)
			       bit=0;
        
        	
        	 
        	 do {
        		
        		
        		System.out.println("请输入最大序号,最大序号必须大于设置位数的最小数:");
                max=scanner.nextInt();
                             
        		
        	}while(max<=bit);
        	 
        	
        	
            
                
          do {
         
          	System.out.println("请输入每次抽取几个");
            System.out.println("注意每次中奖序号最少 1 个序号,最多不超过 2 个序号:");
          	num=scanner.nextInt();
         
          	       
          	   }while(num<1||num>2);
          
         
          	for(n=0;n<num;n++)
          	{
        	  
          	
          		x=max-bit;
          		array[flag]=bit+rand.nextInt(x);  //变相求bit和max中间的随机数
     
          		flag++;
        	
        	
          		if(flag==people)
        		break;
              
                	
          	}
             
        }
	
    
    
    
        System.out.print("所有的中奖序号为:");	
        
        for(int d:array) 
    	
        System.out.print(d+"   ");	
     	
    
        
        
	}   
        
	
	
	
}

实验结果:
请输入中奖人数,最少为五人
5
第1轮抽奖开始
请输入序号数字位数:
2
请输入最大序号,最大序号必须大于设置位数的最小数:
77
请输入每次抽取几个
注意每次中奖序号最少 1 个序号,最多不超过 2 个序号:
2
第2轮抽奖开始
请输入序号数字位数:
3
请输入最大序号,最大序号必须大于设置位数的最小数:
789
请输入每次抽取几个
注意每次中奖序号最少 1 个序号,最多不超过 2 个序号:
2
第3轮抽奖开始
请输入序号数字位数:
2
请输入最大序号,最大序号必须大于设置位数的最小数:
57
请输入每次抽取几个
注意每次中奖序号最少 1 个序号,最多不超过 2 个序号:
2
所有的中奖序号为:37 39 477 162 11

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值