看板 C_Sharp 關於我們 聯絡資訊
private void GetRnd(ref int[] vArray, int min, int max, int num) { int max_dim, number, choice; max_dim = max - min; int[] Luckynumber = new int[max_dim + 1]; for (int i = 0; i <= max_dim; i++) { Luckynumber[i] = min + i; } number= max_dim; Random rnd = new Random(); for (int i = 0; i < num; i++) { choice = rnd.Next(number); vArray[i] = Luckynumber[choice]; for (int j = choice; j < number; j++) { Luckynumber[j] = Luckynumber[j + 1]; } number -= 1; } } private void btnStart_Click(object sender, EventArgs e) { int[] pk = new int[6]; GetRnd(ref pk, 1, 43, 6); Array.Sort(pk); //排序 PictureBox[] defPic = new PictureBox[7]; defPic[1] = pic1; defPic[2] = pic2; defPic[3] = pic3; defPic[4] = pic4; defPic[5] = pic5; defPic[6] = pic6; for (int i = 0; i <= pk.GetUpperBound(0); i++) { defPic[i + 1].Image = new Bitmap(Convert.ToString(pk[i]) + ".jpg"); } } 目前還在學習階段 書上這解答有看沒有懂,自訂方法內的整數變數 max_dim ,number, choice,分別是為了拿來存放哪些數值,是否有人能幫我解答 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 27.246.96.23
qwer820404:感覺這不是單純的樂透耶 樂透不用寫到這麼雜吧ㄎ 03/19 21:29
kthree:我帶1~7值進去,t[7]是否省略不用 03/19 23:12
kthree:寫錯 是luckynumber[i]=min+i這行 03/19 23:14
allenstyle:個人覺得:max_dim為幾顆球,如大樂透1-49,所以49顆球 03/20 00:25
allenstyle:,然後choice就是程式自動幫你選的號碼,然後,num就是 03/20 00:31
allenstyle:總共只能挑幾顆球,如大樂透6顆球。 03/20 00:32
allenstyle:number只是單純跑亂數,至於為什麼程式碼這麼長,應該 03/20 00:33
allenstyle:有圖片顯示了!以上如果有問題,再提出討論,謝謝! 03/20 00:34
KisB:那LUCKYNUMBER[49]=1+49 不就不使用這個值? 這地方也有疑問 03/20 00:35
allenstyle:max_dim = max - min -> 49 - 1 = 48 -> 1 + 48 = 49. 03/20 00:51
Abbee:迴圈太多了 03/20 12:37
twoseven:for (int j = choice; j < number; j++) 這段的用意 03/20 13:38
twoseven:打個比例 如 陣列是 [0]=5 [1]=6 [2]=7 [3]=8 [4]=9 03/20 13:39
twoseven:當rnd 取得 [2]之後 就將 [2]開始的改為 03/20 13:39
twoseven:[0]=5 [1]=6 [2]=8 [3]=9 [4]=9 並將迴圈長度-1 變成0-3 03/20 13:41
twoseven:避免取得重複的值 03/20 13:42
RadiationXen:shuffle再取值就行了吧? 03/27 13:17