単元一覧 › 大学院数学 計算理論・ラムダ計算

計算理論・ラムダ計算の問題

難易度 1大学院の講義の例題レベル大学院数学 計算理論・ラムダ計算

変数のブール関数とは写像 のこととする。入力 をもつブール回路を次のように定める。
- 回路は有向非巡回グラフで、 つの入力ノード と、いくつかのゲートからなる。
- 各ゲートは 入力で、 個ある 変数ブール関数 のどれを割り当ててもよい(定数関数や片方の入力だけによる関数も含む)。ゲートの つの入力は、入力ノードまたはそれより前のゲートであり、同じノードを つの入力に使ってもよい。
- ノードのうち つ(入力ノードでもゲートでもよい)を出力として指定し、その値を回路が計算する関数とする。
- 回路の大きさとは、ゲートの個数のことである。

大きさ 以下の回路で計算できる 変数のブール関数の個数を求めよ。

この問題で使うもの

この問題を解けるようになるまで(31 技能)

ヒント

行き詰まったら、上から順に 1 つずつ開いてください。

ヒント 1

技能「小さな回路で計算できる関数」を使う。大きさ と の回路で計算できる関数を、本質的に依存する変数の個数( 個)で分けて数えよう。

ヒント 2

個の 変数関数のうち、定数が 個、 変数だけに依存するものが 個、本質的に 変数に依存するものが 個ある。

ヒント 3

定数は 個、 変数に依存するものは で 個。 変数に依存するものは、変数の組の選び方と 個の関数の積で数える。

答えと解説

答えを見る
結果を記録する(このブラウザにだけ保存されます):
解説を読む

大きさ と大きさ の回路で計算できる関数を、本質的に依存する変数の個数で分類して数え、重複を除く。

大きさ . ゲートがないので出力は入力ノードであり、計算できるのは の 個。

大きさ . ゲート が つで、その入力は入力ノードから選ぶ。出力がゲートなら関数は の形である(出力が入力ノードなら大きさ の場合と同じ)。

変数関数 個を分類すると、
- 定数 の 個
- 変数だけに依存するもの の 個
- 本質的に 変数に依存するもの 個

となる。これを使って、大きさ 以下で計算できる関数を重複なく分類する。

  • 定数関数: の 個( を定数にすればよい)。
  • 変数に依存する関数: と ()。 は大きさ 、 は に をつなげば得られる。合わせて 個。
  • ちょうど 変数に依存する関数: 変数の組 ()の選び方が 通り、それぞれについて本質的に 変数に依存する が 個。異なる組に依存する関数は異なり、同じ組でも異なる は異なる関数を与える( と の違いは、 個の中で入れ替わるだけ)ので、 個。
  • 変数以上に依存する関数は、ゲート つ(入力 つ)では計算できない。

また、同じノードを つの入力に使う は のどれかであり、新しい関数は出ない。

よって求める個数は

別解

大きさ 0 の回路は出力が入力ノードそのものなので、計算できる関数は の 4 個。大きさ 1 の回路は、1 個のゲート に入力ノード (同じでもよい)をつないだもので、出力はそのゲートとしてよい(出力を入力ノードにしても大きさ 0 の場合と同じ)。計算される関数を、実際に依存する変数の個数で分類して数える。

  • 依存する変数が 0 個(定数): の 2 個(ゲートに定数関数を割り当てれば得られる)。
  • 依存する変数がちょうど 1 個: 変数 を選び、 または 。 個( は大きさ 0 の回路でも得られ、上の 4 個を含む)。
  • 依存する変数がちょうど 2 個: 変数の組 通り。2 変数ブール関数 16 個のうち、定数 2 個と、一方の変数だけに依存するもの 4 個()を除いた 個が両方に依存する。 個。
  • 依存する変数が 3 個以上の関数は、ゲートの入力が高々 2 つのノードなので得られない。

以上は互いに異なる関数なので、合計は 個。検算: 大きさ 0 で得られる 4 個は上の 8 個に含まれるので重複して数えていない。

この問題の確認

AI が作成した問題です。公開前に次の確認を行いました。確認の方法について

間違いを報告する

この問題の誤り・分かりにくい点・難易度や学年のずれを知らせる
どこについての報告ですか

報告の内容と問題の番号を保存します。名前やメールアドレスは保存しません。

関連する問題