作者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
推 superplok:for那在判斷有沒有跟前面重複, 重複reap = true 07/25 01:45
→ superplok:num[0]應該沒用到 07/25 01:47