看板 java 關於我們 聯絡資訊
public class NewClass2 { public static void main(String args[]){ int Max = 46; //亂數的最大值 int[] numbers = new int[Max]; int j=0; for (int i=0 ; i<Max ; i++) { numbers[i]=++j;//陣列初始化 } int n = 6; //你需要的亂數個數 int pick, temp; for(int i=1 ; i<=n ; i++){ pick = (int)(Math.random()*Max);//重點在這裡 //Swapping temp = numbers[pick]; numbers[pick] = numbers[i]; numbers[i] = temp; } //Show出亂數 for(int i=0 ; i<n ; i++) System.out.println(numbers[i]); } } 我小改了幾行 因為原本的程式會出現0 樂透應該是不會出現0吧?? 還有我不懂原本為何有一行要寫 (Max-i)-i 我不懂這行的意義何在? 所以我把他簡掉了 還有我多宣告了變數+來彌補掉會出現0的問題 不知道這樣對不對? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.110.84.96
etman395:上面有打錯字 不是變數+ 是變數j 12/10 23:44
ninteen:你這個版本是錯的喔,因為有可能會出現重複的數字 12/11 03:46
ninteen:喔,上面說錯,你的程式錯在哪裡讓我想想...等下回 12/11 03:49
ninteen:精確的說,你的程式數計出現機率不平均,不信你可以統計看看 12/11 04:05