Re: [問題] 求救!期中考第二三題(2000p)

看板Python作者 (一次就上手)時間7年前 (2018/04/22 20:30), 7年前編輯推噓7(7048)
留言55則, 4人參與, 7年前最新討論串2/4 (看更多)
※ 引述《kevinc0227 (icedragon)》之銘言: : 但是第二題開始就有點不知該如何下手,目前的想法如下: : 1.使用第一題的程式讀檔,dict格式。 : 2.列出所有點的TM2座標,list格式。 : 3.接下來想要將每個點的(x,y)座標減去所求點的座標,求得與所求點距離小於1.5(根號2)的點。 : 4.開一個空dict(list?),將範圍內的點的人口數放入。 : 5.最後比較哪一個所求點的人口數最多。 : 目前實在不知道3.4.5該如何以程式寫出。 : (圖二)目前進度:http://i.imgur.com/I5e2Wwm.jpg
: (附二)說明影片:http://bit.ly/2HjeqWl : (附二)影片是一開始用來思考該如何決定賣場座標的思考方式,雖然題目說明服務範圍是正方形,以方形斜邊一半為半徑的圓,不會影響賣場座標,或許比較好思考,但之後該如何決定正方形的角度就不曉得了。 : 目前的想法如上,也不太確定這樣選取範圍的方式是否正確,實在焦頭爛額,感謝各位願意協助的版友。 我也是新手 來討論一下 題目是沒有寫得很清楚 不過我猜你們誤解老師的用意了 你們想的方向算是進階版 如果你們基礎版ok了再進階吧 題目既然給的是3x3方塊 可見他沒有要你們搞得那麼複雜 否則為什麼不是用直徑3的圓形範圍呢 圓形範圍不是比較直觀嗎 如果是3x3方塊下去擺放(不旋轉) 那其實問題簡化很多 也比較符合你們的程度 有2個做法: 第一個直接暴力地毯式搜索 在地圖上改變xy座標去滑動 被包進3x3之中的就累計人口數 然後你會得到你要的 第二個方法會非常簡單 你把每個行政里中心點依序放在3x3方塊的四個頂點 然後去看包到多少人口 如行政里1中心點為x,y 你就看這四個範圍 (x+3, y+3) (x+3, y-3) (x-3, y+3) (x-3, y-3) 共包到多少人口 依序把所有所有里跑過一遍 會有四個里放在頂點 得到最大人口數 這四個里就是解 然後你就會歸納出 3x3的中心可以擺放在 x = 最左邊的里x+1.5 ~ 最右邊的里x-1.5 y = 最上面的里y-1.5 ~ 最下面的里y+1.5 可以包到最多人 如果有誤歡迎指教啊 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.136.48.115 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1524400248.A.75C.html ※ 編輯: FakeGPS (220.136.48.115), 04/22/2018 20:35:10

04/22 20:36, 7年前 , 1F
補充 這四個里 也有可能重複 變成三個里 二個里之類的
04/22 20:36, 1F
沒畫圖有點不好表達 不知道你能不能理解我說的 ※ 編輯: FakeGPS (220.136.48.115), 04/22/2018 20:43:19

04/22 20:44, 7年前 , 2F
真的謝謝大大肯回我們 我們趕緊寫寫看
04/22 20:44, 2F

04/22 20:47, 7年前 , 3F
我覺得老師的用意應該是要你們這樣做 不可能才初學者就搞
04/22 20:47, 3F

04/22 20:48, 7年前 , 4F
死你們 整個邏輯大約是這樣 我怕我表達不清楚 加油
04/22 20:48, 4F

04/22 20:49, 7年前 , 5F
注意每個里有四個擺放方式喔 因為3x3有四個頂點
04/22 20:49, 5F

04/22 20:53, 7年前 , 6F
總之最後你的解會是一個方型區域 只要賣場中心在其中即可
04/22 20:53, 6F

04/22 20:53, 7年前 , 7F
這個方型區域的四個端點 跟你找到的那四個里有關
04/22 20:53, 7F

04/22 22:28, 7年前 , 8F
作業自己寫
04/22 22:28, 8F

04/22 22:32, 7年前 , 9F

04/22 22:34, 7年前 , 10F
抱歉打擾,感覺是這樣先一個點當中心,再加入其他範
04/22 22:34, 10F

04/22 22:34, 7年前 , 11F
圍內的點,可是這樣出來的結果好像不太對@a
04/22 22:34, 11F

04/22 22:46, 7年前 , 12F
你的code很漂亮 可能我表達不夠清楚
04/22 22:46, 12F

04/22 22:47, 7年前 , 13F
<要改用<= 然後不是把pop_1~4加總 而是比大小
04/22 22:47, 13F

04/22 22:49, 7年前 , 14F
每次迭代都檢查 是否有更大的pop_1 pop_2 pop_3 pop_4
04/22 22:49, 14F

04/22 22:50, 7年前 , 15F
若有 把那個里記起來 最後會得到pop_1~4都等於某個最大值
04/22 22:50, 15F

04/22 22:57, 7年前 , 16F
我想了一下 最後的那個方形區塊解 應該會由某二個里決定
04/22 22:57, 16F

04/22 23:00, 7年前 , 17F
抱歉我在釐清一下,請問是分別比較pop1234,有更大
04/22 23:00, 17F

04/22 23:00, 7年前 , 18F
所以應該是pop_1~4之中的某2個 最後會得到最大值
04/22 23:00, 18F

04/22 23:00, 7年前 , 19F
的pop1就把原本的pop1蓋掉,有更大的pop2就把原本
04/22 23:00, 19F

04/22 23:00, 7年前 , 20F
的pop2蓋掉,這樣嗎?然後最後的pop1234再推回原本
04/22 23:00, 20F

04/22 23:00, 7年前 , 21F
的4個點座標嗎?
04/22 23:00, 21F

04/22 23:02, 7年前 , 22F
嗯嗯對 有更大的pop1就更新 pop2更新...
04/22 23:02, 22F

04/22 23:02, 7年前 , 23F
*再
04/22 23:02, 23F

04/22 23:02, 7年前 , 24F
本題的話 應該只會有某2個pop會是最大值 那兩個里的座標
04/22 23:02, 24F

04/22 23:03, 7年前 , 25F
可以推得最後的解 一個方形範圍
04/22 23:03, 25F

04/22 23:06, 7年前 , 26F
好的我再試試看,最後解是指以兩個裡的中心為中心
04/22 23:06, 26F

04/22 23:06, 7年前 , 27F
的正方形是嗎?
04/22 23:06, 27F

04/22 23:08, 7年前 , 28F
不一定是正方形唷 會是方形就對了
04/22 23:08, 28F

04/22 23:10, 7年前 , 29F
所以是以兩個里為頂點的矩形囉?
04/22 23:10, 29F

04/22 23:11, 7年前 , 30F
那兩個里會是對角的兩個端點 然後方形區域你就會了
04/22 23:11, 30F

04/22 23:41, 7年前 , 31F

04/22 23:42, 7年前 , 32F
這樣跑出來的數字是984517,01120801,948517
04/22 23:42, 32F

04/22 23:42, 7年前 , 33F
0,1120801
04/22 23:42, 33F

04/22 23:44, 7年前 , 34F
修正一下,上面的pop2有打錯,這樣跑出來的pop2是11
04/22 23:44, 34F

04/22 23:44, 7年前 , 35F
20801
04/22 23:44, 35F

04/22 23:46, 7年前 , 36F
我再想想看要怎麼推回去求點座標@@,謝謝!
04/22 23:46, 36F

04/22 23:49, 7年前 , 37F
不過以台北市1萬人口/平方公里來說,這樣人好像太多
04/22 23:49, 37F

04/22 23:49, 7年前 , 38F
了,我再研究一下@@
04/22 23:49, 38F

04/22 23:49, 7年前 , 39F
等等唷 你快成功了但是還是有一個錯誤
04/22 23:49, 39F

04/22 23:52, 7年前 , 40F
想一下你的pop1 pop1_N pop2 pop2_N... 各代表什麼
04/22 23:52, 40F

04/22 23:53, 7年前 , 41F
在換一個里當端點時 是否有東西該歸零
04/22 23:53, 41F

04/23 00:10, 7年前 , 42F
先睡了 記得最後還有"1.5"要考慮 不要錯在終點前了
04/23 00:10, 42F

04/23 09:19, 7年前 , 43F

04/23 09:21, 7年前 , 44F
感覺這樣的寫法沒有表達大pop取代小pop,昨天想了半
04/23 09:21, 44F

04/23 09:21, 7年前 , 45F
天也還不太知道怎麼改@@,我們晚上繼續,白天還有課
04/23 09:21, 45F

04/23 09:21, 7年前 , 46F
Orz
04/23 09:21, 46F

04/23 09:41, 7年前 , 47F
難的部分都解決了 簡單的怎麼會想不出來呢 先放鬆冷靜一
04/23 09:41, 47F

04/23 09:42, 7年前 , 48F
下再回來看 還有之前版本的 += 很美啊
04/23 09:42, 48F

04/24 01:27, 7年前 , 49F

04/24 01:28, 7年前 , 50F
目前的解法是長這樣,結果後來發現原本數字會到80萬
04/24 01:28, 50F

04/24 01:28, 7年前 , 51F
上下跟一開始使用座標形式表示x,y有關@a
04/24 01:28, 51F

04/24 01:30, 7年前 , 52F
,標示在台北市長那樣,還算合理了,感謝,繼續努力
04/24 01:30, 52F

04/24 01:30, 7年前 , 53F
下一題Orz
04/24 01:30, 53F

04/24 09:20, 7年前 , 54F
gj 後半段可以更簡潔 不過沒關係 code沒有最好只有更好
04/24 09:20, 54F

04/24 09:21, 7年前 , 55F
之後你們有空的話可以再檢討看看
04/24 09:21, 55F
文章代碼(AID): #1Qt81uTS (Python)
文章代碼(AID): #1Qt81uTS (Python)