package Exercise;

public class Rand49 {
    private int[][] num49;
    private int[] Rand6=new int[6];
    public void Do_Run(){
        num49 = new int[49][2];//定義範圍 49
        for (int i = 1;i<49 ; i++){
            num49[i][0]=i;
            num49[i][1]=0;
        }
        
        for(int i=0;i<6;i++){//取出值
            int index=(int)(Math.random()*49);
            while(true){
                if(num49[index][1]!=0){
                    index++;
                }else{
                    Rand6[i]=num49[index][0];
                    num49[index][1]++;
                    System.out.println("1:");
                    break;
                }
            }
            System.out.println("2:");
        }
        
        System.out.println("Output:");
        for(int e: Rand6){
            System.out.print(e+" ");
        }
        
    }
}


我懶的註解了

在一些小改良就可以 讓他應用性更廣
要的人自己拿去改吧


想法:
1.
先開一個二維陣列
第一維填入1~X (X=你的範圍)
第二維填入0      (這是用來檢查的)

2.
利用迴圈連續取值
利用RANDOM*範圍=抓取第?個陣列
如果沒被取過
就在第二維填入1
如果被取過
就選取下一個值 或是在用RANDOM抓下一個值
arrow
arrow
    全站熱搜

    Aminzai 發表在 痞客邦 留言(0) 人氣()