11/2 関数から「計算」へ(2),アルゴリズムと計算量(1)


前回の補足


前回の感想,質問より

Q.
以下のプログラムが以下のエラーが出て動かない.
load(“./sod.rb”)
def prime(n)
  sod(n,n-1)==1
end
NameError: undefined local variable or method `“' for main:Object
from /home/5580340106/algo16/prime.rb:1:in `'
from (irb):1:in `load'
from (irb):1
from /usr/local/bin/IRB:11:in `
'
A. (TA 森永さん)
loadの中身のダブルクォーテーションが変になっています。 “” ではなく "" です。 エディタによってはデフォルトだと自動でダブルクォーテーションを違う形に変換してしまったりするので、それが原因ではないでしょうか。 テキストエディットだとスマート引用符?にされてしまうので、設定の変更かコピーペーストで「"」を入力することが必要になります。
Q.
スライドでは「再帰すなわち非効率とは限らない」とあるが、どのような場合に再帰が効率的となるのだろうか。
A.
ここで書きたかったことは,「繰り返しで効率的に書ける時は再帰でも効率的に書く方法はある」,「再帰で効率的に書ける時は繰り返しでも効率的に書く方法はある」位のことです. 「再帰で効率的に書けるが,繰り返しでも効率的に書こうとすると複雑になる時もある」(教科書の第9章の再帰データ構造を扱う場合などが該当します)ので,両方の書き方を覚えることに意味はあります.

前回の課題について

今日の練習,投票

授業の登録方法


講義資料


講義フォルダの作成


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


投票システム

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

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


テキストの補足


今日の課題



第1-4章まとめ課題


昨年度の作品

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

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

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