看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) dev c++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) "lcgrand.h" 問題(Question): 程式跑不出來,不知道問題在哪QQ 餵入的資料(Input): 欲模擬的"時間" 預期的正確結果(Expected Output): 統計結果: 1.第一個server的最大服務容量 這邊我定義的是模擬過程中queue數目最大到多少+1 2.平均一個小時從系統一(inspection)成功離開的人數(也就是不須進入系統二的) 在模擬時間內成功從第一個server(inspection server)離開的人數/總模擬時間 3.所有server的使用率(total busy time/total simulation time) 錯誤結果(Wrong Output): 完全跑不出來QQ 程式碼(Code):(請善用置底文網頁, 記得排版) http://ideone.com/gOQro 這個是lcgrand.c的程式碼 http://www.ie.metu.edu.tr/~ie505/lcgrand.c 補充說明(Supplement): 重新敘述題目,我要模擬兩個系統(inspection,repair)串再一起, 第二個系統(repair)會有0.5的機率feedback回第一個系統(inspection) 也就是說沒修好就繼續去第一個系統檢查,修好機率是0.5 修好就直接離開 也就是說顧客進入第一個系統的來源有兩個, 一個是隨機產生,產生時間遵循exponetial分布(mean是2), 另一個是剛剛從第二個系統(repair)離開的,且需要進入第一個系統(p=0.5) 一離開就馬上進入第一個系統 第一個系統(inspection)的服務時間是uniform(0.25,1.05), 然後有0.3的機率進入第二個系統(repair) 也就是說檢查沒問題就離開,有問題就馬上去第二個系統(repair)修理, 沒問題的機率是0.7 第二個系統(repair)的來源只有一個 就是剛剛從第一個系統(inspection)離開的且需要進入第二個系統的(p=0.3) 第二個系統(repair)的服務時間是uniform(2.1,4.5) 總結就是先檢查,檢查不ok(不ok機率0.7,服務完才知道ok於否) 就去下一站修理,修理不好再檢查(不好機率0.5,服務完才知道修好於否) 模擬時間到就終止,並匯出所需要數據 注意:第一個系統&第二個系統均有Queue,第一個系統有一個server, 第二個系統有兩個server 時間串列是自己產生的~ 請高手幫幫忙,題目不難懂,畫個圖就很清楚敘述了 感謝大家QQ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.233.234
EdisonX:敘述不夠。轉去programming較合適,先說明時間離散化是怎處 04/27 07:25
EdisonX:理為佳。 04/27 07:25
EdisonX:<補>敘述不夠指的是,1. exp分佈除了means,還需要sd<沒有> 04/27 07:36
EdisonX:2. 第一個 server 最大服務容量 <未定義,是要算不等待??> 04/27 07:37
EdisonX:3. 離開人數未定義 <重回到station1的要再計時?> 04/27 07:38
freshair1219:自己做一個時間串列阿 04/27 07:38
freshair1219:exp分布只要mean..... 04/27 07:39
freshair1219:最大服務容量一般是指 queue大小+server個數 04/27 07:41
freshair1219:但這邊queue大小是自己定的,所以我定義的最大容量是 04/27 07:42
freshair1219:模擬過程中 queue最大使用數+server數目(就是1) 04/27 07:44
freshair1219:3.不懂你的意思= =|||,我只計算模擬時間內共多少人 04/27 07:46
freshair1219:從系統離開,然後我要算平均一個小時有幾個是從系統 04/27 07:47
freshair1219:一 成功離開.... 04/27 07:47
EdisonX:假設系統1裡最終出去的有100人,其中30人是系統2回鍋的, 04/27 07:48
EdisonX:所以從系統1離開的是100人還是70人? 04/27 07:49
freshair1219:100,回鍋的只要在模擬時間出去都算~ 04/27 07:54
※ 編輯: freshair1219 來自: 140.112.233.234 (04/27 08:22)
EdisonX:是個有趣的問題,不過沒時間幫你看.點幾個有問題的地方。 04/27 10:01
EdisonX:1. EVENT event, event 變數名稱和 struct event 相衝。 04/27 10:01
EdisonX:2. add_queue 裡面,前面有可能有空位<有人離開>,要再修。 04/27 10:02
EdisonX:3. 在link做插入比較時,再加一個,若時間一樣,left先處理。 04/27 10:03