1

こんにちは、私は 2 次元の char 配列 opt[][] を持っており、例のように配列に 2 つのシーケンスがあります

私の

 `opt[0][0]=A        
  opt[0][1]=T
  opt[0][2]=G
  opt[0][3]=A`   

 opt[1][0]=A
 opt[2][0]=G
 opt[3][0]=C
 opt[4][0]=T

私は現在この出力を持っています

   x/y|  A  T  G  A  -
_______________________
  0 A |  0  0  0  0
  1 G |  0  0  0  0
  2 C |  0  0  0  0
  3 T |  0  0  0  0
  4 - |  0  0  0  0

私の問題は、動的計画法をどのように使用できるかです

この配列をこれに作成するには

http://i.stack.imgur.com/ViHc9.png

マッチの場合 0 ペナルティ ミスマッチの場合 1 ペナルティ ギャップの場合 2 ペナルティ

このように配列の文字を比較できます

for(int i=0;i<4;i++){

                if(opt[0][i]==opt[i+1][0]){

                    result[0][i] =1;

                }

しかし、これは比較できるかどうかを確認するために行った簡単なテストであり、比較できることがわかりました。

どうすればここからあそこに (画像配列に) 行くことができますか?

4

1 に答える 1

1

これらの記事を読むことをお勧めします。

http://en.wikipedia.org/wiki/Smith%E2%80%93Waterman_algorithm
http://en.wikipedia.org/wiki/Needleman%E2%80%93Wunsch_algorithm

どの言語での実装も非常に簡単です。

また、動的計画法に関する一般的な情報が必要な場合は、
自分で Google を検索するか、これらの 2 つのリンクを確認してください。

http://en.wikipedia.org/wiki/Dynamic_programming
https://www.topcoder.com/tc?d1=tutorials&d2=dynProg&module=静的

于 2013-12-17T12:35:22.600 に答える