コラッツ予想とC言語プログラムによる証明の検証

大学数学

この問題では、コラッツ予想を検証するために、C言語を使用してプログラムを作成し、その結果を理論値と比較する方法について説明します。

コラッツ予想とは

コラッツ予想とは、任意の自然数nに対して、次の手順を繰り返すことで必ず1に到達するという予想です。

  • nが偶数の場合、nを2で割る
  • nが奇数の場合、nを3倍して1を加える

この予想は未解決の数学的問題として知られています。プログラムを使ってこの予想を検証し、結果を得ることが目標です。

プログラムの構造と概要

このプログラムでは、まずC言語でコラッツ予想に基づく計算を行い、各整数に対する処理回数を求めます。計算結果は実際の値と理論値の比較を通じて検証されます。

具体的な処理の流れとしては、偶数と奇数の計算部分を訂正し、奇数処理回数を繰り越しを考慮して記録します。1万まで計算を行った結果、理論値は実際の値より常に大きいことが確認されました。

プログラムコードと結果の解釈

以下に示すのは、実際のプログラムコードです。このコードでは、コラッツ予想に従って計算を行い、偶数や奇数に対する処理回数を記録しています。

#include "stdafx.h"
#include 

void kora(long x,bool f) {
 long i,j;
 int h,l,g;
 j=i=x;
 g=l=0;
 h=0;
 while(i) {
 if(i & 1) {
 l*=2;
 l+=2;
 h=2;
 g+=l;
 } else {
 l+=h;
 g+=h;
 }
 i>>=1;
 }
 h=0;
 while(j>1) {
 if(j & 1) {
 h++;
 j=j*3+1;
 }
 j/=2;
 }
 if(f) printf("%ld,%d,%d\n",x,g,h);
 else if(g

計算結果と考察

プログラムを使用して99までの結果を計算したところ、理論値と実際の値に差があることが確認されました。例えば、1の処理回数と理論値の差は一定で、特に大きな数になるほど差が顕著になりました。計算ミスや例外値の可能性についても確認を行いましたが、結果として理論の通りに動作していることがわかりました。

まとめと今後の課題

このプログラムによるコラッツ予想の検証は、理論と実際の計算結果を比較するための有効な手段となります。今後の課題としては、さらに大きな数値に対する計算や、アルゴリズムの最適化、他の数学的仮説との比較などが挙げられます。

コメント

タイトルとURLをコピーしました