私は Project Euler の問題 220をいじっていますが、ウィキペディアのトピックに関するDragon Curveの記事について少し混乱しています。曲線全体を描画することなく n 番目のターンの方向を計算するトピックについては、次のように述べています。
まず、n を k * 2^m の形式で表現します。ここで、k は奇数です。n 番目のターンの方向は、k mod 4、つまり k を 4 で割ったときの余りによって決定されます。k mod 4 が 1 の場合、n 番目のターンは R です。k mod 4 が 3 の場合、n 番目のターンは L です。
たとえば、ターン 76376 の方向を決定するには、次のようにします。
76376 = 9547 x 8. 9547 = 2386x4 + 3 so 9547 mod 4 = 3 so turn 76376 is L
- n がk2^m として表現できるかどうかを判断する賢い方法はありますか?
- n がこのように表現できないとはどういう意味ですか?
(この問題は、長さ 2^50 のドラゴン曲線上の点の位置を計算するため、実際に曲線を描くことは問題外です。)