単元一覧 › 大学数学 オートマトン・形式言語

オートマトン・形式言語の問題

難易度 4大学院入試の標準レベル大学数学 オートマトン・形式言語

アルファベット 上の正規表現

を考え、 が表す言語を とする( は和集合、 はクリーネ閉包を表す)。

長さ の文字列 のうち、次の 2 つの条件をともに満たすものの個数を求めよ。

  • に含まれる の個数が偶数である( 個も偶数とみなす)

この問題で使うもの

この問題を解けるようになるまで(7 技能)
算数中学高校大学大学院

読み込み中…

右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。

一覧で見る(前提が先)
  1. 正規表現が表す言語と文字列の判定
  2. 決定性有限オートマトンの動作と受理判定
  3. 樹形図で数え上げる
  4. 積の法則と和の法則
  5. 和の法則・積の法則と樹形図
  6. 状態ごとの文字列数の漸化式
  7. 正規言語に属する長さ n の文字列の数え上げ

ヒント

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

ヒント 1

の文字列はブロック の並びであり、どのブロックも で始まる。ブロックへの分け方が一意になることに注目しよう。

ヒント 2

ブロックが 個で全体の長さが のとき、 の個数は になる。 の個数が偶数という条件をブロック数の条件に言い換えよう。

ヒント 3

ブロック数 が の場合について、長さ のブロックで合計 にする並べ方を数える。各ブロックの長さを ()とおくと重複組合せで数えられる。

答えと解説

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

の文字列の分解の一意性 の文字列は、ブロック をいくつか並べたものである。どのブロックも で始まり、ブロックの中で は先頭の 1 個だけなので、空でない では「各 の位置からブロックが始まる」と決まり、ブロックへの分け方はただ 1 通りである。したがって の長さ の文字列は、「長さが のいずれかであるブロックを並べて合計の長さを にする並べ方」と 1 対 1 に対応する。つまり、 を のいずれかの正の整数の順序付きの和に分ける方法(合成)の数を数えればよい。

の個数とブロック数の関係 長さ のブロックは を 個含む。ブロックが 個のとき、 の個数は

である。よって の個数が偶数 が偶数 が偶数。

ブロック数 ごとの数え上げ 各ブロックの長さを ()とおくと、 を満たす 以上の整数の組 (各 )の個数を数えればよい。 が必要()である。偶数の は 。

  • : より 通り
  • : 。合計が なので は自動的に満たされ、重複組合せで 通り
  • : 。制限なしでは 通り。このうちある となるものは、 とおくと で 通り、 の選び方が 通りで計 通り(2 つ同時に 以上にはなれない)。よって 通り

したがって求める個数は

(確認: 奇数の も数えると で 通り、 で 通り、 で 通りとなり、合計 。これは の長さ の文字列の個数 の漸化式 ()から得られる と一致する。)

別解

は の連接でできる文字列全体。どのブロックも で始まり、その後ろの は 0〜2 個なので、文字列を の位置で区切れば分解は一意に決まる。したがって長さ 8 の の元は、8 を 1, 2, 3 の和(順序つき)で表す方法(合成)と 1 対 1 に対応する(ブロックの長さ 1, 2, 3 がそれぞれ , , に対応)。

ブロックの個数を とすると の個数は 、 の個数は 。 の個数が偶数 が偶数。

長さ 8 でブロック数 の合成の個数は の の係数、すなわち の の係数:
- : 最大でも長さ 6 なので 0
- : の の係数は 19
- : の の係数は
- : 1()

合計 。

検算: 奇数 の側は : 3、: 30、: 7 で計 40。合計 は、1, 2, 3 を使った 8 の合成の総数(トリボナッチ型の漸化式 , )と一致する。

答え: 41

この問題の確認

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

間違いを報告する

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

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

関連する問題