作者followaymis (abcde)
看板C_Sharp
标题[问题] 乱数...可以解释一下吗?
时间Tue Jul 24 22:34:00 2007
产生1~42不重复的乱数..模拟乐透开奖情形..
int [] num = num int[8];
Random rnd = new Random();
int getdata;
bool reapeatdata;
int tot = 1
do
{
getdata = rnd.Next(1,43); //取得1~42乱数
repeatdata = false; //先假设不重复
for(int i = 1;i<=tot;i++) //这边不懂,为何 i<=tot
{
if(getdata==num[i]) // 因为i=1,所以会跑回圈,进入到if(getdata==num[i])
{ 所以getdata(26 乱数产生) = num[1]..是这样解释吗?
reapeatdata = true;
break;
}
}
if(reapeatdata == false //因为i从1开始,i++,i从2进入回圈..但i<=tot
{ 不符合条件,所以跳出回圈执行这一行...
num[tot] = getdata; 因为reapeatdata == false(一开始预设的)
tot++; num[1] = getdata(26)
} tot = 2
while(tot<8) // 因为tot = 2 符合while 再开始回圈
对於上面两个if叙述小弟很模糊.....
小弟想问num[0]在哪个点会出现?
或是可以把小地解释不队的地方改一下...
小弟非常想厘清观念..谢谢....
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.70.143.144
1F:推 superplok:for那在判断有没有跟前面重复, 重复reap = true 07/25 01:45
2F:→ superplok:num[0]应该没用到 07/25 01:47