Re: [問題] 關於隨機變數

看板C_and_CPP作者 (海沙尼亞人)時間14年前 (2010/04/26 02:12), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《iulan3122 (ja)》之銘言: : void generateRand(int r[], int sz) : { : int i, now, a; : now = 0; : do : {a = rand() %10; : for(i=0; i<now; i++) : if(a == r[i]) break; : if(i == now) {r[now] = a;now++;} : }while(now<sz); : } 我猜這個function的目的是在已知size為sz的int array中填入互不相同的數 (範圍為0~9) : 這邊看不是很懂耶 : if(a == r[i]) break; 這段是什麼意思 它從r[0]開始填值 每次輪到r[now]的時候生一個0~9的亂數,檢查r[0]~r[now-1]有沒有用過這個數 有的話會break,下面i==now就不會成立,會再回到生亂數的地方 a=rand()%10 沒有的話就填進去,然後把now加一 : while(now<sz); 為什麼要在這個條件下 因為外來的array已知size為sz,故只有r[0]~r[sz-1]是可用的 now>=sz的情況下r[now]不可用 : 小弟第一次發文 請求高手解答 這個function在sz>10的情況下感覺會爆炸? -- 「…那樣的話就證明那個骷髏知道你必須知道的事情, 它是帶著完成使命的榮耀來向你展示自己的殘骸的。」 安倍吉俊,「灰羽連盟」 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.192.50.219

04/26 02:41, , 1F
我懂了 謝
04/26 02:41, 1F
文章代碼(AID): #1Br8O2lR (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1Br8O2lR (C_and_CPP)