我正在玩 Project Euler 的Problem 220,我对 Wikipedia 关于该主题的文章Dragon Curve有点困惑。关于无需绘制整条曲线即可计算第 n 个转弯方向的主题,它说:
首先,以 k * 2^m 的形式表示 n,其中 k 是奇数。第n 圈的方向由k mod 4 决定,即k 除以4 的余数。如果k mod 4 为1,则第n 圈为R;如果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
- 除了检查 2 的连续幂的可分性之外,是否有一种聪明的方法可以确定 n 是否可以表示为 k2^m?
- 如果 n 不能以这种方式表达,这意味着什么?
(问题涉及计算长度为 2^50 的龙曲线上的点的位置,因此实际绘制曲线是不可能的。)