11/9 アルゴリズムと計算量(2)


補足


前回の感想,質問より

Q.
この練習問題についてですが、if部分の条件を不等式から等式に変えることで計算量が減ったりはするのでしょうか(なんとなくそんな気がしたのですが…)。
A.
使用するプログラミング言語処理系や使用するCPUによって速度が変わる可能性がないとは言い切れないのですが,一般的には2つの数の間で等号が成り立つかどうかと不等号が成り立つかどうかの判定には速度差がない場合が多いはずです.速度は気にしないで分かりやすい条件を選んで構いません.
Q.
irbおよびisrbで読み込もうとしたところ、ともに以下のエラーが出た。
================================
SyntaxError: /home/XXXXXXXXXX/algo16/interference3.rb:12: dynamic constant assignment
Z = make2d(2*s,2*s)
    ^
=================================
A. (TA 森永さん)
Zが大文字なのが原因のようです。 rubyでは大文字から始まるものは変数ではなく定数として扱われます。 https://docs.ruby-lang.org/ja/latest/doc/spec=2fvariables.html によると、
  >アルファベット大文字 ([A-Z]) で始まる識別子は定数です。 定数の定義 (と初期化) は代入によって行われますが、メソッドの 中では定義できません。
とのことです。(rubyでは)関数の中で定数割り当てしてはいけないためエラーが出ています。

前回の課題について

今日の練習,投票

講義資料


講義フォルダの作成


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


投票システム

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

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


テキストの補足


今日の課題



第1-4章まとめ課題


昨年度の作品

昨年度の作品が第1-4章まとめ課題にあります.

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

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