■■C++で大きな数を作るスレ■■
■ このスレッドは過去ログ倉庫に格納されています
0425デフォルトの名無しさん
2010/07/09(金) 19:21:12C++関数:>>1 の言語仕様を満たす C++の関数
【1】n文字以内のC++プログラムが返すことができる最大値が存在する(この値を Cmax(n) とする)
【2】n文字以内の停止するC++プログラムの最大ステップ数が存在する(この値を Cstep(n) とする)
n文字以内のプログラムは有限個であるため、明らか
ただし、n文字以内のプログラムが存在しない場合は便宜的にCmax(n) = Cstep(n) = 0 としておく
【1】【2】にそれほど大きな差がないことも簡単にわかる
【3】すべてのC++プログラムの停止判定を行えるC++関数は存在しない
【4】すべてのnに対して Cmax(n) を返すC++関数は存在しない
【5】すべてのnに対して Cstep(n) を返すC++関数は存在しない
【4】がα文字で出来たとすると、Cmax(α*2+30) を返すプログラムがα*2+30文字未満で作れる ===> 矛盾
【3】【5】が存在したら【4】も作れる ===> 矛盾
【6】N文字以下のすべてのC++プログラムの停止判定を行えるC++関数は存在する
【7】N以下のすべてのnに対して Cmax(n) を返すC++関数は存在する
【8】N以下のすべてのnに対して Cstep(n) を返すC++関数は存在する
nステップ以下で停止するC++関数を停止すると判断するC++関数を A(n)とした時、
A(1), A(2), A(3), ... の中に【6】が存在することは明らか
【6】から【7】【8】が作れる
■ このスレッドは過去ログ倉庫に格納されています