[問題] 剛剛的隨機變數

看板C_and_CPP作者 (ja)時間15年前 (2010/04/26 05:15), 編輯推噓5(5018)
留言23則, 8人參與, 最新討論串1/1
我又看不太懂了 他的全部程式碼是這樣子的 #include "stdafx.h" #include <stdlib.h> #include <time.h> void generateRand(int r[], int sz); void findMinMax(int r[], int sz, int& min, int &max); int _tmain(int argc, _TCHAR* argv[]) { int r[10]; int min, max; generateRand(r, 10); for(int i=0;i<10; i++) printf("%d ", r[i]); findMinMax(r, 10, min, max); printf("min %d, max %d\n", min, max); system("pause"); return 0; } void findMinMax(int r[], int sz, int& min, int &max) { min = r[0]; max = r[0]; for(int i=1; i<sz; i++) { if(r[i] < min) min = r[i]; if(r[i] > max) max = r[i]; } } 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); } 那既然他要10個變數出來而且又不重複 那為什麼還要算MAX跟min -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.138.224.175

04/26 06:28, , 1F
這兩件事有衝突嗎? 十個不重複的變數最大最小值我們不知
04/26 06:28, 1F

04/26 06:28, , 2F
道啊 所以要求他的最大最小值沒什麼吧?
04/26 06:28, 2F

04/26 06:29, , 3F
如果是用shuffle法求得的不重複變數才會是定值...
04/26 06:29, 3F

04/26 10:44, , 4F
原po想問 生十個1-10的數(不重複),卻又要找極值 嗎
04/26 10:44, 4F

04/26 11:01, , 5F
把%改成變數n 就會取得sz個1~n不重複的值再求最大、最小值?
04/26 11:01, 5F

04/26 11:40, , 6F
嗯 我想問生十個1-10的數(不重複),卻又要找極值
04/26 11:40, 6F

04/26 11:44, , 7F
生十個1-10的數不重複, 極值肯定是1和10不是嗎....@_@"
04/26 11:44, 7F

04/26 11:51, , 8F
0 9
04/26 11:51, 8F

04/26 11:57, , 9F
0-9是極值所在的array index, 但是他的 findMinMax() 找
04/26 11:57, 9F

04/26 11:58, , 10F
的是值不是index, 所以1-10間不重複的數極值是1和10....
04/26 11:58, 10F

04/26 11:59, , 11F
所以是題目本身就有問題嗎? 極值確定是1跟10吧
04/26 11:59, 11F

04/26 12:00, , 12F
而且我也不知道他的SZ
04/26 12:00, 12F

04/26 12:01, , 13F
我發現, code產生的數是0-9, 不是1-10, 所以....Orz
04/26 12:01, 13F

04/26 12:02, , 14F
sz就是10啊, 在code裡是array的大小, 也是要生出來的亂
04/26 12:02, 14F

04/26 12:02, , 15F
數數量....~_~
04/26 12:02, 15F

04/26 12:13, , 16F
我懂了 謝
04/26 12:13, 16F

04/26 12:53, , 17F
你元智通訊的齁??
04/26 12:53, 17F

04/26 20:55, , 18F
如果從一個知道全局的人的觀點來看 確實minmax不用算
04/26 20:55, 18F

04/26 20:56, , 19F
就知道結果,不過假如寫主程式的人並不知道產生亂數的
04/26 20:56, 19F

04/26 20:56, , 20F
那個function所產生的數範圍是0~9,那再計算一次
04/26 20:56, 20F

04/26 20:57, , 21F
也不能說全無意義,畢竟意義是人賦予的
04/26 20:57, 21F

04/26 21:00, , 22F
就好像有人也覺得每裝一個程式就跳出一個UAC警告
04/26 21:00, 22F

04/26 21:00, , 23F
要你選是或否是很有意義的一件事...
04/26 21:00, 23F
文章代碼(AID): #1BrB3t8z (C_and_CPP)