|
> No.3782[元記事へ]
GAIさんへのお返事です。
> 数列{a[1],a[2],a[3],・・・}は
> a[2n]=a[n];a[2n+1]=(-1)^n
> で定められていて、点Pは座標平面上を次のように移動する。
> (1)原点をP[0]とし、PはP[0]からx軸の正の方向へ1だけ進む。
> この点をP[1]とする。
> (2)P[i]まで来たPは,a[i]が1なら左へ90°方向を変えて1だけ進み、-1なら右へ90°方向を変えて1だけ進む。
> この点をP[i+1]とする。(ただしi=1,2,3,・・・)
>
>
> この様に決まっていくP[1],P[2],P[3],・・・の動きを目で追いたい。
ドラゴン曲線が現れました。
OPTION ARITHMETIC COMPLEX !複素平面
SET WINDOW -10,30,-12,28 !表示領域
LET N=300 !2n+1
DIM A(2*N+1) !数列
LET A(1)=1
FOR K=1 TO N
LET A(2*K)=A(K)
LET A(2*K+1)=(-1)^K
NEXT K
MAT PRINT A; !1,1,-1,1,1,-1,-1,1,1,1,-1,-1,1,-1,-1,1,…
LET P=0 !p[0]は原点
PLOT LINES: P;
LET D=0 !平面上での向き 0:右、1:上、2:左、3:下
LET P=1 !p[1]は点(1,0)
PLOT LINES: P;
FOR K=1 TO 2*N+1 !p[k]
LET D=D+A(K) !左へ90°、右へ90°回転する
LET P=P+EXP(COMPLEX(0,1)*2*PI*D/4) !各方向へ1だけ移動する
PLOT LINES: P;
!!!PRINT P; D !debug
NEXT K
END
|
|