2014-09-02から1日間の記事一覧

結論めいたもの

C言語のような文法の言語でも書けますけれども、条件分岐ではなく、lispにおけるcondのような「パターンマッチングによる関数呼び出しのオーバーライド」→状態遷移図と考えることにより、 条件のチェック 関数の中身のチェック を分離することで、プログラ…

このプログラムが終了することの証明

数学的帰納法 (の逆さま)になりますが、 円盤が1枚のときは終了することが自明 円盤がN枚のとき、Nが正の整数ならば、再帰呼び出しによってN−1の場合が2回呼び出される (...((N−1)−1)... −1)を繰り返せば 1になるので、これも終了する よっ…

ハノイの塔

ハノイの塔についてはググって頂くとして。 ハノイの塔 wikipedia 棒1に刺さっている円盤の一番上のものを、棒2へと移動するとき (1.2)のように表現する たとえば、棒 1に刺さっている3枚の円盤を、棒2へと移動することを考えたときその手順は以下のよう…

停止性問題

自分、こういうの苦手なのですが、、、、 計算可能性理論において停止(性)問題(ていしせいもんだい・ていしもんだい、halting problem)は、あるチューリング機械(≒コンピュータプログラム・アルゴリズム)が、そのテープのある初期状態(≒入力)に対し、…

「プログラムが終わる」ことの証明 〜ハノイの塔 編〜

「猿の惑星 創世記」でチンパンジーがハノイの塔を解いてました。自分、あのパズルが苦手で解いたことなかった→サルに負けた、、、、というわけで、チンパンジーに対抗心を燃やして「ハノイの塔」を題材に、任意のプログラムが終了する(=無限ループでない…