back-end-portfolio

後端與程式自學心得整理

View the Project on GitHub

基地台

(A)程式學習到的事情:

(B)程式描述:

城市內有5個城鎮挑選2個城鎮設置基地台,離基地台距離3以內都可以收到訊號,求設在哪些城市會使基地台效率最大化。 衡量指標為:收到訊號人數。

程式執行畫面使用者輸入城市資訊5,2,3(5個城鎮,2個基地台,3單位內可收到訊號),城市座標與人數為[0,0,15],[2,3,30],[3,4,20],[-2,-2,40],[-1,4,25]

基地台執行畫面

解題想法與概念:

  1. 因有n個城鎮,取p個城鎮設置基地台,d距離內可以收到訊號
  2. 將input城鎮資訊換成二微陣列 [0][0]=x [0][1]=y [0][2]=人數 例如有八個城市就會到[7][0] [7][1] [7][2]
  3. 可用 while 判斷未取到 p 個基地台重覆執行迴圈
  4. 先紀錄當前位置以pow 計算兩點距離累加人數 從第一個城市當作基地台去計算收到訊號的人數
  5. if 判斷如 sumpopulation > maxpopulation做更新 for i&j 雙層迴圈結束後,會得到訊號最佳的城市作為基地台
  6. 將此最佳城市作為基地台可收到訊號的城鎮從 listtown 中刪除 並重覆執行 3~6