演算法作業01
1. 本週影片中提到的NP-complete問題有哪些?
- 0/1有限背包問題
- 旅行商問題
- 分區問題
- 畫廊監視器問題
2. 請上網找一個老師沒說過的NP-complete問題,並舉個例子說明該問題的輸入與輸出。
最簡單的就是N皇后了
在的西洋棋棋盤上放上個皇后棋,
並且要放置在讓它們不會互相攻擊到的位置上,問有幾種擺放方式。
最常見的是,也就是8皇后問題。
Image Not Showing
Possible Reasons
- The image was uploaded to a note which you don't have access to
- The note which the image was originally uploaded to has been deleted
Learn More →
相關NP-complete證明
https://www-users.york.ac.uk/peter.nightingale/IJCAI2018-nQueens.pdf
下面是我寫的範例程式:
輸入是,代表棋盤邊長以及皇后數量,
輸出是可擺放的方式數量。
如果N=8
輸出會是92
因為有92種擺法
3. 二元搜尋應用:當數字可以重覆
1. 解題思路
把等於也認定為上界之外,
最後找到的 就會是答案。
2. 程式碼
3. 測試輸出輸入的畫面截圖
Image Not Showing
Possible Reasons
- The image was uploaded to a note which you don't have access to
- The note which the image was originally uploaded to has been deleted
Learn More →
4. 花費時間
15分鐘
5. 完成程度
完全自己解出
4. 二元搜尋應用:找數字該插入的位置
1. 解題思路
把3.的程式最後return的地方改成回傳就可以了,
因為如果要插入的話也是要插入在第一個比他大的那個索引值。
2. 程式碼
3. 測試輸出輸入的畫面截圖

4. 花費時間
2分鐘
5. 完成程度
完全自己解出
5. 二元搜尋應用:找到最早出問題的版本
1. 解題思路
在4.的基礎上把判斷條件改成是否為壞版本,
然後把改成,防止int溢位(私心不想用long long)
2. 程式碼
3. 測試輸出輸入的畫面截圖

4. 花費時間
6分鐘
5. 完成程度
完全自己解出
6. 二元搜尋應用:開根號後的整數部分
1. 解題思路
找到第一個大於解的數,然後再減一即可。
(超過份這題逼我用long long,討厭鬼)
2. 程式碼
3. 測試輸出輸入的畫面截圖

4. 花費時間
5分鐘
5. 完成程度
完全自己解出
7. 本週心得
已填