ゼミの風景

おそらくお気楽はしのすけゼミの諸風景

Top | ゼミ2016卒 | ゼミ2015卒 | ゼミ2014卒 | イベント | About

Ducci数列問題(4年ゼミ)

教採明け最初のDucci数列のゼミ.(写真撮り忘れ)
もう本当に10ヶ月近く解決できないままの,
0に収束するための2冪の必要十分性について.
久しぶりなので本日はこれまでの振り返りで終わった.

そうだ,mod 2^kではないが,最終的に2種の数値になるのなら,
0,1のみからなる数列を考えるのは一つのヒントになるだろう.
そう思って(後日当人から要請された)BASICプログラムを作った.
つまり,最初にランダムな0,1列を与え,これにDucci mapを適用して
いつ繰り返しが起こるか探すものだ.あれこれ実験してみたが,
見るからに意味ありげな関係がn角形と周期の間に出てきた.
おやおや,これは面白いかもしれない.
皆さんもお試しあれ.

REM
REM 【n数問題】
REM Ver. 2014/09/06
REM 停止条件は厳密に繰り返しを見つけたら.
REM

LET maxd=64
DIM a(0 TO maxd-1),b(0 TO maxd-1),c(0 TO 10000,0 TO maxd-1)
RANDOMIZE

DO
DO
INPUT PROMPT "何角形?(≦64)":n
LOOP UNTIL n<=64
IF n=0 THEN EXIT DO

!初期の数の配置.乱数で0,1の数を適当に割り当てる.
LET s$=" 0:"
FOR k=0 TO n-1
LET a(k)=INT(RND*2)
LET c(0,k)=a(k)
LET s$=s$ & STR$(a(k))
NEXT k
PRINT s$

!差の計算
LET t=1
DO
FOR k=0 TO n-1
LET b(k)=ABS( a(MOD(k+1,n))-a(k) )
LET c(t,k)=b(k)
NEXT k
LET sum=0
LET s$=right$(" " & STR$(t) & ":",5)
FOR k=0 TO n-1
LET a(k)=b(k)
LET s$=s$ & STR$(a(k))
LET sum=sum+a(k)
NEXT k
PRINT s$
LET i=0
DO
LET sum=0
FOR j=0 TO n-1
LET sum=sum+ABS(c(i,j)-c(t,j))
NEXT j
LET i=i+1
LOOP UNTIL sum=0 OR i=t
IF sum=0 THEN LET tt=i-1
LET t=t+1
LOOP UNTIL sum=0
PRINT "繰り返し開始位置";tt
PRINT "周期";t-tt
LET tt=0
LOOP

END

f:id:okiraku894:20140915103618g:plain