Re: [請益] 關於±400.±400的問題

看板travian (妖精森林)作者 (我是毛毛蟲)時間17年前 (2008/05/07 01:55), 編輯推噓3(304)
留言7則, 4人參與, 最新討論串4/6 (看更多)
※ 引述《phenom (發揮最大的價值)》之銘言: : ※ 引述《ourYvonne ( 鬼娃娃伊帆 )》之銘言: : : 特別附註! : : 咱自從大二考過校內程式認證之後就再也沒有碰過程式了...... : : 所以以上的程式必定是漏洞百出...... : : 希望意思有表達到就行了,各位看看就好 : : 千萬別拿去compile啊...... Orz : 由於有板友真的拿去跑了~ : 挑點小毛病以供修正程式 請見諒 ^^" : else if 好像反了 還有第二到第四種情況忘了加平方~ : 其實把 x y 分開看 : x方向距離不會大過400 : y方向距離也不會大過400 : 兩村 (x1,y1) (x2,y2) : 假設最後用來計算距離的是 x 跟 y : if (|x1-x2| > 400) x = x1+x2; : else x = x1-x2; : if (|y1-y2| > 400) y = y1+y2; : else y = y1-y2; : 距離 L = (x^2+y^2)^(0.5); : 概念上跟 our 大應該是相同的 不過應該比較容易懂~ 以例子來說 (400,400)->(400,-400) |x1-x2|<=400所以x=(+400)-(+400)=0 |y1-y2| >400所以y=(+400)+(-400)=0 L=(0^2+0^2)^0.5 =0 可是(400,400) (400,-400)並不是同一個點 距離不應該為0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 同樣的(400,400) (400,-400) (-400,-400) (-400,400) 這四點任取兩點計算 答案都是錯誤的.... 所以判斷是似乎還是錯的 -- ╭─────────────────────────────────────╮ │ 這篇文章讓你覺得? │ │ │ │ = =+ ( ̄▽ ̄) @@ 〒△〒 ψ(._. )> y( ̄︶ ̄)y - -||| (# ̄皿 ̄)│ │ 新奇 溫馨 誇張 難過 實用 高興 無聊 生氣 │ ╰─────────────────────────────────────╯ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.117.165.217

05/07 02:38, , 1F
多加個1就可以了
05/07 02:38, 1F

05/07 02:57, , 2F
不能只為了單一case就+1
05/07 02:57, 2F

05/07 02:57, , 3F
這樣0,0->0,1就會錯
05/07 02:57, 3F

05/07 03:24, , 4F
我意思是,判斷完後再+1:if abs(x1-x2)>400 {-x1-x2+1}
05/07 03:24, 4F

05/07 07:40, , 5F
嗯 我以為+400跟-400是同一個點~ 不同的話就加1就好
05/07 07:40, 5F

05/07 12:54, , 6F
先取絕對值平方再減...
05/07 12:54, 6F

05/07 12:55, , 7F
我回文好了..
05/07 12:55, 7F
文章代碼(AID): #1889jyiL (travian)
文章代碼(AID): #1889jyiL (travian)