12/14 数値計算(3), パターン認識(1)


補足


前回の感想,質問より

Q.
IEEE 754 の実数表現がどういった経緯で開発されて広く採用されているのかが気になります。この表現のどこがどう優れているのかがあまり理解できていないので……。これよりも有用な表現法は果たして無いのだろうかという気持ちに少しなります。
A.
歴史的にいうと,IEEE 754登場以前に大型計算機などで使われていたIBM方式(指数部が16のべき乗)と比べると,相対誤差が小さい点は評価されました.また,最初の規格ができたのは1985年ですが,1980年に登場した8087が,ほぼIEEE 754の規格に沿ったものになっていたのも,広まった原因の一つですね.
Q.
>-0.0があるのはなんのためか疑問に思った >0.0 == -0.0 >はtrueになったが、 >0.0.equal?(-0.0) >はfalseになった
A.
Ruby 言語の equal? は同値性ではなくてオブジェクトとしての同一性を判定しているので, isrb(main):007:0> a = 0.0 0.0 isrb(main):008:0> b = 0.0 0.0 isrb(main):009:0> a.equal?(b) false のように,0.0同士でもfalseになります.なお,-0.0があるため, isrb(main):013:0> 1.0/(10.0)**319.0 -0.0 isrb(main):014:0> 1.0/(10.0)**319.0 0.0 のように0ではないが,0に近い値である数について,真の値が正か負かがわかるという効果はありますが,積極的に残す理由は無いでしょうね.

前回の課題について


今日の練習,投票

講義資料


講義フォルダの作成


配付プログラムのダウンロード


投票システム

vote.rbをダウンロードして(「リンク先のファイルを別名で保存」で,ホームフォルダの下のalgo16を選択(なければ作る).".txt"を「追加しない」を選ぶ),ホームディレクトリに保存します.ドックからターミナルを起動して,
cd algo16
を済ませてから,
ruby vote.rb 選択肢番号
のように使います.

irbを使いながら(一旦終了せずに),投票システムも使うには,ターミナルのメニューバーの「シェル」->「新規タブ」を選ぶか,[Command]+[T]で別のタブを開いて(あるいは[Command]+[N]で別のウィンドウを開いて),投票システムを使うことをお勧めします.このあたりのことは,「はいぱーワークブック」15.4 ターミナルの便利な使い方に書いてあるので参考にしてください.


テキストの補足


今日の課題



自宅で自習をする人のために

アルゴリズム入門共通資料の中に講義で使うRuby言語の処理系のインストール法があります.