作者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
1F:→ etman395:上面有打错字 不是变数+ 是变数j 12/10 23:44
2F:推 ninteen:你这个版本是错的喔,因为有可能会出现重复的数字 12/11 03:46
3F:→ ninteen:喔,上面说错,你的程式错在哪里让我想想...等下回 12/11 03:49
4F:推 ninteen:精确的说,你的程式数计出现机率不平均,不信你可以统计看看 12/11 04:05