[問題] 如何計算出一個圓內的有幾個整點坐標?

看板C_and_CPP作者 (不要問)時間15年前 (2009/06/08 07:43), 編輯推噓10(10017)
留言27則, 9人參與, 最新討論串1/1
小弟不是來求解的 只是請問版友要用哪種方式寫比較好? 關於題目只能用這些方式: if, if…else, do, for, switch, do…while (我也只學這些方式...) 我想的可能寫出來的方式只有用 for !? 有關奇怪的印度題目是這樣的 -- x^+y^=r^ represents the equation of circle with center at the origin (0,0) and radius r. Write a program that reads radius (r) from the key board and prints the number of points with integer coordinates that lie within the circle. -- yahoo字典怪翻譯 --- x^+y^=r^用中心代表圈子的等式在起源(0,0),並且半徑r.寫讀從键盘的半徑(r)的節目並 且打印點的数量與在圈子之间的整數座標的。 -- (x^ = x^2 ? 有點忘了....." ^ " 是不是直接等於平方...) 意思大概就是 輸入 (x,y) 然後會有一個圓 求圓內有幾個"整點坐標" (整體意思是這樣沒錯? 我看不太懂英文....) 例如: 我(x,y)輸入1,1 共有這些坐標: (0,1) (1,0) (0,0),(0,-1)(-1,-1)..... cout圓內整點坐標的數量 小弟不知從何下手 目前用for寫看看 (第一次看PASCAL還能看得出些端倪 這次第一次看到不知從何下手的題目) 不過我以前數學真的很差阿...圓的基本原理要問同學 請問有比for更好的寫法嗎?! (?o?) -- 為什麼您要這麼著急呢? http://www.wretch.cc/blog/s9021413 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.229.220.155 ※ 編輯: tcc740sd 來自: 61.229.220.155 (06/08 07:45)

06/08 07:47, , 1F
對你而言 這應該是數學問題
06/08 07:47, 1F

06/08 07:47, , 2F
你能以數學理解出來 自然就能以程式想法解出
06/08 07:47, 2F

06/08 07:50, , 3F
這題1點也沒你上次那題++怪
06/08 07:50, 3F

06/08 07:51, , 4F
for(x=0 to +r){ { for(y= 0 to +r ) } } ,額外加上x,y軸對稱
06/08 07:51, 4F

06/08 08:00, , 5F
真的想順便練數學的話,可以再加考慮45度 135度 對稱軸.
06/08 08:00, 5F

06/08 08:02, , 6F
^是用來表達次方,如x^2代表x平方。另外這題方程式是平方沒錯
06/08 08:02, 6F

06/08 08:06, , 7F
還有 題目好像只考慮輸入r 而已,不是輸入x y .
06/08 08:06, 7F

06/08 08:09, , 8F
是喔!!!! @@ 我英文不太好 只大概知道要畫個圓來求
06/08 08:09, 8F

06/08 08:09, , 9F
++那題是印度人的題目怪 然後我就突然冒出那問題了...
06/08 08:09, 9F

06/08 08:11, , 10F
謝謝各位好心的版友~看來是我數學爛的問題 ( ̄□ ̄|||)a
06/08 08:11, 10F

06/08 08:21, , 11F
只是要求數量不用畫圓,列出座標範圍。用迴圈跑所有座標跑一輪
06/08 08:21, 11F

06/08 08:22, , 12F
每次拿到座標,就跟(0,0)用直線距離公式求是否<=半徑來判斷
06/08 08:22, 12F

06/08 08:46, , 13F
喔喔喔!!! 謝謝樓上
06/08 08:46, 13F

06/08 09:15, , 14F
他給的input是r不是x y...
06/08 09:15, 14F

06/08 10:52, , 15F
這不就是 ACM 356 Square Pegs And Round Holes
06/08 10:52, 15F

06/08 10:53, , 16F
我也是用樓樓上說的方法
06/08 10:53, 16F

06/08 11:07, , 17F
用到對襯軸只是可以減少平方的計算量,
06/08 11:07, 17F

06/08 11:28, , 18F
不是應該用水平(或垂直)線求截點, 直接頭減尾算點數就好了?
06/08 11:28, 18F

06/08 11:29, , 19F
一個一個加太慢了吧 @@
06/08 11:29, 19F

06/08 11:29, , 20F
不然 r=1000000 不就算到睡著了 囧
06/08 11:29, 20F

06/08 11:35, , 21F
Good!! 看來我數學也不好..
06/08 11:35, 21F

06/08 11:49, , 22F
現在機器這麼快 其實可以大膽使用蒙地卡羅法 |D
06/08 11:49, 22F

06/08 12:12, , 23F
半徑R 是浮點數還是整數
06/08 12:12, 23F

06/08 14:26, , 25F
蒙地卡羅其實我以前有想過... XD 但是精確度難確保
06/08 14:26, 25F

06/08 14:31, , 26F
那個 sequences 的很帥 XD 不過只有到 1000
06/08 14:31, 26F

06/08 16:43, , 27F
我承認蒙地卡羅法是來亂的 XDDDDDDDDD
06/08 16:43, 27F
文章代碼(AID): #1AB52zTt (C_and_CPP)