1/25 その他


試験について


前回の感想,質問より

Q.
align_dpを使うと今までは簡単に出ていたATAGとAACのアラインメントも非常に時間がかかってしまいうまく 動きませんでした。プログラムの仕方が間違っているのかもしれないのですが、トレースバックでプログラムし たものは普通のalignよりも動作が速くなるのではないでしょうか?どこが間違っているのかよくわかりません。
A.
関数alignで最後に値を返す部分が
  a[m][n]
になっています.スコアを返す関数にしようとしたのは自然だと思いますが,tracebackでは第1引数のaは2次元配列が来ることを仮定しているのでうまく動きません.
 a
を返すように書けば動くはずです.
Q.
s,tは1次元の配列なのに、そのi-1番目の要素を呼び出す際にalignではs[i-1]なのに、tracebackではそうではな く、s[i-1..i-1]として呼び出したのはどうしてなのですか?たしかにtracebackでs[i-1]を使うと動きませんでし たけど…
Q.
文字列sのi-1番目の文字を呼び出すのに、s[i-1]でなくてs[i-1..i-1]とする理由はなぜですか?
A.
鋭いですね.文字列sに対してs[i] を参照すると,文字列sのi番目の文字の「文字コード」である整数を返します. 例を示します.
 irb(main):003:0> s="ATCG"
 => "ATCG"
 irb(main):004:0> s[1]
 => 84
のように,s[1]では,sの1文字目(0から始まることに注意)の"T"という文字の文字コードである84を返すわ けです.

一方,s[1..1]ではsの1文字目から1文字目までの部分文字列が得られるので, irb(main):005:0> s[1..1] => "T" となります.ただ,この仕様はあんまりなので,Rubyの次のバージョンである 1.9では,変更されています. ktanaka@dell:~$ irb1.9 irb(main):001:0> a="ATCG" => "ATCG" irb(main):002:0> a[1] => "T" irb(main):003:0> a[1..1] => "T" こちらの方が自然ですね.

Q.
スライドの21ページの表の右下のほうの
ATA
AAC
となっている部分は、
ATA-
A-AC
もあり得ますか?上から求めた場合はこうなると思うのですが。
A.
はい.スライド28ページの対応する欄には上矢印と左上矢印が出ていますが,どちらから求めてもスコア最大になります.
Q.
評点の付け方は具体的にどのようにして決めることが多いのでしょうか?
A.
課題の評価のことですね.成績に関することなので,完全にオープンにすることはできませんが, 11/16の課題(自分の好きな図を描くプログラム)を除けば,「提出した」「提出しない」の2段階が 基本(これにプラスマイナスはあり)だと思って下さい.
Q.
以前もかいたが、失敗は友達とチェックし合うとみつけやすいということがまた実感させられた。
A.
プロのプログラマがプログラムを作成する際にも,ミスを少なくするためにペアプログラミングという手法が用いられることがあります.初心者のうちはなおさら,友達とプログラムを見せ合うと勉強になりますね.

投票システム

vote.rbをダウンロードして,ホームディレクトリに保存してください.ドックからターミナルを起動して,
ruby vote.rb 選択肢番号
のように使います.

今日の練習,投票

関連リンク


教科書の補足


今日の課題