ねこでじ(Nekodigi)

Nekodigi’s diary

学習中の気づきをまとめています。応援よろしくお願いします

【Processing】コラッツの問題をもとにオリジナルのシークエンスを作った。

成果物

www.youtube.com

コラッツの問題に似ているけど、また違った種類のシークエンスが出来ました。コラッツの問題では、偶数・奇数で動作を変えていましたが、今回は、三で割ったあまりをもとに動作を変えています。

仕組み

 \begin{array}{l} 今回の数式\\ f( n) =\begin{cases} n/3 & \mathrm{if} \ n\equiv 0\\ 4n-1 & \mathrm{if} \ n\equiv 1\\ 4n+1 & \mathrm{if} \ n\equiv 2 \end{cases}(\bmod 3)\\ 解説\\ これは、コラッツの問題の数式です\\ f( n) =\begin{cases} n/2 & \mathrm{if} \ n\equiv 0\\ 3n+1 & \mathrm{if} \ n\equiv 1 \end{cases}(\bmod \ 2)\\ この式から、奇数の時コラッツの問題では、次の式が整数になります。\\ \frac{3n+1}{2} =n+\frac{n+1}{2}\\ これを、kで割ったあまりの時でも当てはめるために次のような式を考えました。\\ 分数の部分が整数になるように、場所に合わせて1を変更します。\\ n+\frac{n+1}{k}\\ この式をもとに試行錯誤した結果、k=3で、最初の式にした場合は、\\ 最終結果が1になりました。 \end{array}

説明が難しい…4で割った場合も作ろうとしましたが、失敗しました。発散しないようにするのが難しいです。本家コラッツの問題はこちらをご覧ください。

nekodigi.hatenablog.com

コード

今回は、前回の記事をもとにプログラムを書いています。