単元一覧 › 大学数学 アルゴリズムと計算量

アルゴリズムと計算量の問題

難易度 1教科書の例題レベル大学数学 アルゴリズムと計算量

文字列 から 個以上の文字を取り除き、残った文字を元の順序のまま並べた文字列を、 の部分列という。 つの文字列の両方の部分列になっている文字列を共通部分列という。

DNA の塩基配列を表す つの文字列

について、 の先頭 文字と の先頭 文字の最長共通部分列の長さを とする(。)。 の 文字目を 、 の 文字目を とすると、 のとき

が成り立つ。この漸化式で表を埋めて、 と の最長共通部分列の長さ を求めよ。

この問題で使うもの

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

読み込み中…

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

一覧で見る(前提が先)
  1. 動的計画法の基本(硬貨の最小枚数)
  2. 最長共通部分列

ヒント

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

ヒント 1

最長共通部分列の表 を、問題文の漸化式に従って 行目から順に埋めていく方法を使う。

ヒント 2

各マスでは と が同じ文字かを確かめる。同じなら左上の値に を足し、違えば上と左の値の大きいほうをとる。

ヒント 3

行目(A)は 、 行目(C)は 、 行目(G)は になる。残りの 行を同じように埋める。

答えと解説

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

の文字を行、 の文字を列にとり、 の行から順に、各行を左から右へ埋めていく。 行目と 列目はすべて である。

()
- (C):不一致。
- (A):一致。
- (T):不一致。
- (G):不一致。
- (A):一致。

()
- (C):一致。
- から :すべて不一致で、上も左も なので、いずれも

()
- :不一致。上の値がすべて なので
- (G):一致。
- (A):不一致。

()
- :不一致。
- (T):一致。
- (G):不一致。
- (A):不一致。

()
- (C):不一致。
- (A):一致。
- (T):不一致。
- (G):不一致。
- (A):一致。

完成した表( から の部分)は次のとおり。

よって である。実際、 や は と の両方の部分列になっており、長さ の共通部分列である。

答え:

別解

表を として行 ( A, C, G, T, A)、列 ( C, A, T, G, A)の順に埋める。 である。

(A):
(C):
(G):
(T):
(A):

例えば は A なので となる。

検算として、共通部分列 CGA は ACGTA の 2,3,5 文字目、 CATGA の 1,4,5 文字目に現れるので長さ 3 のものが実際に存在する。表の値からこれより長いものは存在しない。

よって 。

この問題の確認

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

間違いを報告する

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

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

関連する問題