見出し画像

「オイラー関数のアルゴリズム比較」:関数型プログラミングの初級問題-36問目- (答案なし)

 素数についての練習問題と感想です。問題は、OCaml公式ページのものを使いました。答案は作成していません。

問題36.

 問題32のオイラー関数phiと問題35オイラー関数phi_improvedのアルゴリズムを比較せよ。
 論理的推論の数を効率の尺度とせよ。
 例として$${\phi (10090)}$$を計算せよ。

感想

 論理的推論の数?いったい何のことでしょう?
 $${\beta}$$変換の回数ならまだ分かりますが…
 OCamlの計算原理は論理的推論なのでしょうか?Prologなのですか?
 そもそも演繹系は何になるのでしょう?

 それともBHK解釈のことですか?
 「静的」型付け言語であるOCamlでは、計算の実行前に型推論が終わってしまいます。
 計算実行前の型推論で、実行時のアルゴリズムを比較できるのですか?

 文句を言うばかりではいけません。少しは自分で考えないと、面白い記事になりません。

 そういえば、カウンターマシンの状態を論理式として表すことで、マシンの状態遷移を論理的推論過程として表現できる、と言う話を読んだことがあるような気がします。
 と言うことは、OCamlの仮想機械をカウンターマシンで再構築し、そのカウンターマシンの計算回数を論理的推論の数とすれば、アルゴリズムの比較ができる…わけがないです…

 上級プログラマさま!上級プログラマさまはおられませんか?問題を解説して戴きたいのですが!!

 次回は、第37問です。
 OCaml節が全開です。まったく意味が分かりません。もちろん説明もありません。理解できないバカッパは置いてけ堀です。(かっぱの鳴き声)

古往今来得ざれば即ち書き得れば即ち飽くは筆の常也。と云うわけで御座います、この浅ましき乞食めに何卒皆々様のご慈悲をお願い致します。