leeronc 2011-08-02 14:41
浏览 273
已采纳

随机数问题(急)(初学)

 

import static java.lang.Math.*;

public class luckyChoice
{
    public static void main(String args[])
    {
        int count = 6;//用来存储生成数字的个数
        int num1,num2,num3,num4 ,num5,num6;
        num1 = num2 = num3 = num4 = num5 = num6 = 1000;//用来存储生成数字的变量
        int array  = 49;//生成数字的边界
        int set = 5;//生成数字的组数
        //开始生成数字
        for(int i = 1;i <= set;i++)
        {
        
            
            for(int j = 1;j <= count;j++)
            {
                int num = (int)(array*random()) + 1;//生成随机数1-49
                
                switch(j)
                {
                    case 1:
                        num1 = num;
                        System.out.println("num:"+num+" num1:"+num1);
                        break;
                    case 2:
                        if(num != num1)
                        {
                            num2 = num;
                            System.out.println("num:"+num+" num2:"+num2);
                        }
                        break;
                    case 3:
                        if(num != num1 && num != num2)
                        {
                            num3 = num;
                            System.out.println("num:"+num+" num3:"+num3);
                        }
                        break;
                    case 4:
                        if(num != num1 && num != num2 && num != num3)
                        {
                            num4 = num;
                            System.out.println("num:"+num+" num4:"+num4);
                        }
                        break;
                    case 5:
                        if(num != num1 && num != num2 && num != num3 && num != num4)
                        {
                            num5 = num;
                            System.out.println("num:"+num+" num5:"+num5);
                        }
                        break;
                    case 6:
                        if(num != num1 && num != num2 && num != num3 && num != num4 && num != num5)
                        {
                            num6 = num;
                            System.out.println("num:"+num+" num6:"+num6);
                        }
                        break;  
                }       
            }
            System.out.println("第"+i+"组:"+num1+" "+num2+" "+num3+" "+num4+" "+num5+" "+num6);
        }
    }
}

 结果却出现:

 num:19 num1:19
num:2 num2:2
num:41 num3:41
num:8 num4:8
num:38 num6:38
第1组:19 2 41 8 1000 38
num:9 num1:9
num:20 num2:20
num:16 num3:16
num:41 num4:41
num:11 num5:11
num:12 num6:12
第2组:9 20 16 41 11 12
num:2 num1:2
num:19 num2:19
num:42 num3:42
num:26 num4:26
num:1 num5:1
num:21 num6:21
第3组:2 19 42 26 1 21
num:41 num1:41
num:17 num2:17
num:27 num3:27
num:45 num4:45
num:6 num5:6
num:40 num6:40
第4组:41 17 27 45 6 40
num:6 num1:6
num:29 num2:29
num:7 num3:7
num:10 num4:10
num:2 num5:2
num:47 num6:47
第5组:6 29 7 10 2 47

第一组为啥生成这样的记过呀,真是郁闷

  • 写回答

2条回答

  • tmgod 2011-08-02 14:56
    关注

    num:19 num1:19
    num:2 num2:2
    num:41 num3:41
    num:8 num4:8
    num:38 num6:38
    第1组:19 2 41 8 1000 38
    拿这个来说,显然 第5个数随机产生和前4个重复,所以case 5直接break
    最后输出的num5 其实是之前赋值的

    就是说有重复的时候,输出的值其实是之前的值

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?