計算理論・ラムダ計算の問題
変数のブール関数とは写像 のこととする。 に対して とし、 に対して とする。
変数のブール関数 が自己双対であるとは、すべての について
が成り立つことをいう。自己双対な 変数のブール関数の個数を求めよ。
この問題で使うもの
- 条件つきブール関数の数え上げ(説明と入口の問題)
この問題を解けるようになるまで(30 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
一覧で見る(前提が先)
- 樹形図で数え上げる
- 積の法則と和の法則
- 和の法則・積の法則と樹形図
- 順列・円順列・重複順列
- 組合せ
- 確率の定義と和事象・余事象
- 包除原理
- 同じものを含む順列・重複組合せ
- 一般の包除原理
- 約数の見つけ方
- 最大公約数と最小公倍数
- 素因数分解と約数の個数
- 最大公約数と最小公倍数
- 分数のたし算・ひき算
- 小数の四則計算
- 正負の数の加法・減法
- 分数のかけ算・わり算
- 四則の混じった計算の順序
- 正負の数の乗除・累乗と四則混合
- 分配法則を使った計算のくふう
- 文字式の計算(同類項・分配法則)
- 乗法公式による展開
- 因数分解
- 文字式で表した整数の性質
- 余りによる整数の分類
- 合同式
- 群の位数と元の位数
- 置換の巡回置換分解と位数
- バーンサイドの補題
- 条件つきブール関数の数え上げ
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
技能「条件つきブール関数の数え上げ」を使います。条件 が、どの入力どうしの値を結びつけているかを考え、 を補元の作用の軌道に分けましょう。
ヒント 2
かつ なので、 の 個の元は という 2 元の組に分かれます。各組で を決めると はどうなるでしょうか。
ヒント 3
組の個数は 個で、各組では の値を選ぶ 通りだけ自由があります。あとは積の法則を使いましょう。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
手順 1: 条件なしの個数を確認する。
の元は 個あり、各元に か を割り当てるので、 変数のブール関数は全部で 個ある。自己双対の条件は、この割り当て方に制約を加えるものである。
手順 2: 補元の作用で を軌道に分ける。
写像 は 2 回くり返すと元に戻る()。また、どの成分も反転するので であり、固定される元はない。したがって は という 2 元ずつの組(軌道)に分かれ、その個数は
である。例:
手順 3: 各軌道での値の決め方を数える。
1 つの組 について、 を か に決めると、条件 により はただ 1 通りに決まる。逆にこのように決めれば、その組の上で条件は( と を入れ替えた式も含めて)成り立つ。よって各組での決め方は 通りで、組どうしは独立に決められる。
手順 4: 積の法則でまとめる。
8 個の組それぞれで 2 通りなので
個である。
別解
は 上の対合で、固定点をもたない( となる成分がない)。したがって 個の点は の組 にちょうど 組に分かれる。
自己双対な は、各組 について をみたす。組ごとに を のどちらにするか自由に決めれば、 は自動的に決まり、条件はその組のもう一方の点でも成り立つ。逆に が自己双対ならば各組でこのように決まっている。
よって個数は 。
検算: 変数が 個のとき個数は で、 なら の 個()、 なら 個()で と一致する。 では 。