作者etman395 (聖子到)
看板java
標題Re: [問題] 樂透不能重複問題
時間Wed Dec 10 23:36:32 2008
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