2005-06-22から1日間の記事一覧
Pythonで書くことを考える。 単純にリストを出すだけなら、適当な r について [(x, y) for x in range(1, r) for y in range(1, r) if x**2 + y**2 < r**2]で済む話だ。しかし、「原点から近い順」というのが曲者である。普通のループの回し方じゃダメなんだ…
座標平面上で、原点を中心とする半径 r の円を考える(x^2 + y^2 = r^2)。 上記の円の内部、かつ第一象限である格子点を、原点から近い順に数え上げよ。
全部計算したあとに並び替えるのはちょっと頭が悪すぎる。できれば、 計算しながら並べる 小さい順に計算する のどちらかをやりたい。前者のほうが簡単そうに見えるなぁ。