![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 梅菊客 ![]()
![]() |
已經打出了一些 但仍然有些搞不是很懂... 求解啊各位大大!!!!! 問題描述 : 任務分配,計算最短任務所需時間 1. 一個方格代表一個任務, T1/4 :代表 T1 任務需要 4 秒執行時間才能完成。 2. 箭頭代表執行順序,例如上圖所述: T4 任務及 T5 任務需要等 T1 任務完成後才可進行。 3. 一台處理器同一時間只能處理一個任務,且必須做完該任務後,才可以執行另一個任務。 4. 所有的任務皆在初始化完成。 例: 假設有 3 台處理器,處理上圖所述之任務 任務編號 所需時間 ( 秒 ) 執行順序 T1 4 無 T2 2 無 T3 2 無 T4 20 需等 T1,T2 完成才可進行 T5 20 需等 T1,T2,T3 完成才可進行 T6 6 需等 T2,T3 完成才可進行 T7 7 需等 T3 完成才可進行 請計算出如何安排,才能在最少時間內完成所有任務呢 ? 輸入說明 : 描述 Process:N N 台處理器 Task:task,time 任務, task 任務名稱, time 任務執行時間 Prec:t1,t2 優先權, t1 必須在 t2 前執行,也就是說 t2 必須等到 t1 結束才可以開始執行 end 輸入結束符號 程式開始執行 輸出說明 : 24 輸出所有任務所需最短執行時間。 範例 : 輸入範例 Process:3 Task:t1,4 Task:t2,2 Task:t3,2 Task:t4,20 Task:t5,20 Task:t6,11 Task:t7,11 Prec:t1,t4 Prec:t1,t4 Prec:t2,t4 Prec:t2,t5 Prec:t2,t6 Prec:t3,t5 Prec:t3,t6 Prec:t3,t7 end 輸出範例 24 程式: public static void main(String[] args) { int [] a = new int[100]; Scanner w= new Scanner(System.in); for(int xx=0;xx<10;xx++) { int b=w.nextInt(); a[xx]=b; } for(int yx=0;yx<10;yx++) { run(a[yx]); System.out.println(a[yx]); } } private static void run(int x) { int w=0; while(w<x) { for(int k=0;k<655360000;k++) w++; System.out.println(); } } |