---
# System prepended metadata

title: 2025多處理機平行程式設計 期末考
tags: [成大多處理機平行程式設計]

---

# 2025多處理機平行程式設計 期末考
###### tags: `成大多處理機平行程式設計`

[ToC]

考試形式：上機考
考試日期：1/10(五)
考試時間：9:10-12:00，9:30分後不開放入場
考試地點：65304教室
考試題數：2題(都需要做平行化)
## 注意事項 
1. 請同學按照座位表入座，考試中會傳遞簽到表，請同學記得簽到
2. 考試過程中除了moodle, github classroom, reference網站外，請勿開啟其他網站(禁止使用chatgpt,copilot等ai程式 如果開啟使用視為作弊)
    可以查c,cpp, openmp和MPI的reference，網址如下
    c：https://en.cppreference.com/w/c
    cpp：https://en.cppreference.com/w/
    MPI：https://www.mpi-forum.org/docs/mpi-4.0/mpi40-report.pdf
    openmp : https://www.openmp.org/resources/refguides/
3. 可以攜帶作業code的電子檔以及十張筆記(上面的內容沒有限制)
4. 考試一律使用教室電腦ubuntu系統，教室電腦環境與實驗室主機相同，同學可以用教室電腦judge測試，禁止使用自己筆電，如電腦有問題請當下舉手向助教反應
5. 不得提早出場?
6. 交卷方式為上傳到Github classroom(連結會放在題目下方),過考試時間12點後請勿更改或上傳檔案到github classroom，如果超過時間更改會被標注late，該題將不會評分
7. 考試過程中有任何問題可以舉手詢問助教，或是查看最下面疑難排解的部份
8. 考試過程中要裝水或上廁所請舉手告知助教

# 多處理機平行程式設計 期末考第一題 (50%)
## 題目:古老遺跡的解謎之路-二
### 題目敘述
在一次偶然的探險中，小明發現了一座隱匿在叢林深處的神秘遺跡，據說這座遺跡承載著遠古文明的智慧和寶藏。在遺跡的深處，小明驚喜地發現了一個古老的寶箱，這個寶箱傳說藏有無比珍貴的寶物。

然而，解開這個古老寶箱的唯一線索是一張神秘的密碼卡，這張卡片上除了一串看似毫無規則的數字之外，上面還寫著一串文字寫說:使用counting sort將密碼卡的內容進行升序排列即可打開寶箱

小明深知這是一個極具挑戰性的任務，為了揭開神秘寶箱的秘密，小明請求你的協助，設計一個演算法，以解開這串古老密碼，揭示寶箱內的神秘之物。

在這場數字的冒險中，你的演算法將成為解謎的關鍵，而唯有成功排序這串神秘數字，才能啟動寶箱中的機關，揭開神秘寶藏的面紗。你的演算法將成為小明解謎之旅的核心，為他帶來無窮的興奮與期待。

pseudo code:
![image](https://hackmd.io/_uploads/rJeuBh_IJg.png)

### 輸入輸出說明
輸入測資的部分第一行為𝑛以及𝑚𝑎𝑥，是總共有𝑛個數字，所有數字中最大值為𝑚𝑎𝑥，後面𝑛行皆是密碼卡上的內容。
![image](https://hackmd.io/_uploads/S1v6Hh_Lkg.png)
資料範圍：
* $1 \leq n < 70001$
* $1 \leq max < 70001$

輸出的部分:如下圖所示，無須換行，印出數字的順序，每個數字需要以一個空白區隔。

![image](https://hackmd.io/_uploads/BJ7bU3dU1l.png)

time out：9.6s

### 繳交格式

在Github上傳一個<font color="#f00">程式碼檔案以及對應的Makefile檔案</font>，程式碼檔名為 學號_final1
例如：p12345678_final1.c p12345678_final1.cpp都可
Makefile就叫Makefile

Github classroom網址:https://classroom.github.com/a/04hzn_RS

# 多處理機平行程式設計 期末考第二題 (50%)
## 題目:城市交通網絡最短路徑分析
### 題目敘述
你是一位交通工程師，負責分析一個大型城市的交通網絡。這個城市有多個交通節點（例如公交站、地鐵站），這些節點通過多種交通路線（如公路、地鐵線）相互連接。每條路線都有其行駛時間。請使用 Dijkstra 算法來找出起點到各點的最短路徑。
pseudo code:
![image](https://hackmd.io/_uploads/Hknd82O81g.png)
![image](https://hackmd.io/_uploads/HkbFI3_I1g.png)
### 輸入輸出說明
第一行為交通節點的數量𝑛，接下來為𝑛∗𝑛的矩陣，記錄各個節點到各個節點的距離，只有對角項會是0，節點之間為雙向邊
測資說明：
![image](https://hackmd.io/_uploads/r1i3U3dUke.png)
資料範圍：
* $1 \leq n < 2000$
* $1 \leq 節點距離 < 100$

time out：8s
### 繳交格式

在Github上傳一個<font color="#f00">程式碼檔案以及對應的Makefile檔案</font>，程式碼檔名為 學號_final2
例如：p12345678_final2.c p12345678_final2.cpp都可
Makefile就叫Makefile
Github classroom網址:https://classroom.github.com/a/ljhZs18w

# 疑難排解
1. 如果教室電腦不能judge可以改連線到伺服器上去做judge 作法請參考下方hackmd連結
    - [多處理機平行程式設計使用ubuntu terminal連線到伺服器](https://hackmd.io/@E94091102/Bye_KV3G1e)

