捷運站錢怎麼算?
10 瀏覽次數
捷運站間票價計算
在台北捷運系統中,車資計算方式為:前 5 公里 20 元,每增加 3 公里加收 5 元。為了便利乘客,本文將介紹一個演算法,計算任意兩站間最短路線及最低票價。
演算法
- 讀取資料:讀取捷運路線圖和各站間距資料。
- 建構圖形:將捷運網路建構為圖形,其中節點為車站,邊為軌道,邊的權重為距離。
- 執行 Dijkstra 演算法:從起點站執行 Dijkstra 演算法,找出前往所有其他車站的最短路徑。
- 計算票價:根據最短路徑的距離,計算所需的票價。
範例
以下為從忠孝復興站前往淡水站的範例:
- 讀取資料:讀取捷運路線圖和各站間距資料,如下:
路線一:淡水線
- 起點:淡水站
- 終點:劍潭站
- 距離:11.2 公里
路線二:紅線
- 起點:淡水站
- 終點:南港展覽館站
- 距離:22.1 公里
路線三:松山線
- 起點:松山站
- 終點:南港站
- 距離:11.8 公里
路線四:信義線
- 起點:象山站
- 終點:大安森林公園站
- 距離:12.9 公里
路線五:環狀線
- 起點:大橋頭站
- 終點:十四張站
- 距離:14.3 公里
各站間距:
- 淡水站 - 中山國中站:1.5 公里
- 中山國中站 - 民權西路站:1.2 公里
- 民權西路站 - 雙連站:1.3 公里
- 雙連站 - 忠孝復興站:1.1 公里
- 忠孝復興站 - 國父紀念館站:1.6 公里
- 國父紀念館站 - 中正紀念堂站:1.4 公里
- 中正紀念堂站 - 大安站:1.3 公里
- 大安站 - 台北車站:1.2 公里
- 建構圖形:將捷運網路建構為圖形,如下:
忠孝復興站 -- 中山國中站 -- 民權西路站 -- 雙連站 -- 淡水站
忠孝復興站 -- 國父紀念館站 -- 中正紀念堂站 -- 大安站 -- 台北車站
- 執行 Dijkstra 演算法:從忠孝復興站執行 Dijkstra 演算法,找出前往所有其他車站的最短路徑:
忠孝復興站 -> 淡水站:忠孝復興站 -> 雙連站 -> 民權西路站 -> 中山國中站 -> 淡水站,距離 6.1 公里
- 計算票價:根據最短路徑的距離 6.1 公里,計算所需的票價:
票價 = 20 + ceil((6.1 - 5) / 3) * 5
票價 = 20 + ceil(1.1 / 3) * 5
票價 = 20 + 1 * 5
票價 = 25 元
因此,從忠孝復興站前往淡水站的最短路徑為 6.1 公里,所需的最低票價為 25 元。
#交通 費用#捷運 票價#票卡 付費對答案提出建議:
感謝您提供的建議!您的反饋對我們改進答案非常重要。