11/30 関数から「計算」へ・アルゴリズムと計算量
前回までの補足
- 「情報理工学系研究科の10周年記念シンポジウム」の宣伝を頼まれたのでビラを演習室後ろの机の上に置きます.興味を持った人は,後で取っていってください.
- 第6章のスライドまでアップロードしました.
- 演習室内は飲食禁止です.ペットボトルを持ち込む際もバッグ等の中に入れてください.
前回の感想,質問より
- Q.
- 授業中に作ったcombinationが動きませんでした。解決しようとすると繰り返しの回数がすごいことになりました。
課題の大きさに指定はないのでしょうか?
- A.
-
どのようなプログラムを書いたところ,どのようなエラーが出たのでしょうか?それが分からないとちょっと
答えられません.
繰り返しの回数というのは,プログラム中に現れるforやwhileの回数ということでしょうか? それとも
実行中に,同じforやwhileの部分で繰り返す回数のことでしょうか?
大きさというのは,プログラムの大きさでしょうか? それとも,combinationに与える引数の大きさでしょうか?
後者だとすると,再帰版のcombinationの定義で combination(40,32) などを計算させるとかなり時間がかか
るはずなので,途中でキーボードでコントロールCを入力して止めてください.教科書P.63の練習4.4で繰り返しで定義したcombination_loop では同じ計算も一瞬で終了することを体験することになっています.
前回の課題について
- CFIVEの掲示板11/16の課題,質問への課題提出は 11/16 11:00現在で 1名.
- 12/6(火)までに投稿された作品は12/7(水)の講義の際にコンテスト(相互評価)を開催します.
投票システム
vote.rbをダウンロードして,ホームディレクトリに保存してください.ドックからターミナルを起動して,
ruby vote.rb 選択肢番号
のように使います.
今日の練習,投票
関連リンク
教科書の補足
- 情報科学入門: Rubyを使って学ぶ / 配付プログラムにあるプログラムは一括ダウンロードできます.allcode.zipをダウンロードして,ファインダーからダブルクリックするとallcodeというフォルダーができます.その下にすべてのファイルが入っています.そこのファイルをすべて,講義用のフォルダー(is11)にコピーすると良いでしょう.
- 情報科学入門: Rubyを使って学ぶ / 配付プログラムの中には練習問題のチェックプログラムが含まれています.たとえば,第1章の練習問題をテストする時には,同じディレクトリに,練習問題で作成したプログラムを教科書で指定されたファイル名で置いて,
ruby check.rb ex01.rb
と実行すると,関数を与えた時の入力と出力があっていることが確認できます.
今日の課題
- 講義中に投票を求められるので,投票システムを使って投票をしてください.
- 11/16の課題,質問を終了していない人が大部分だと思うので,取り組んで下さい.一度提出した人ももっと良いものができたら,何度でも投稿して構いません.コンテストの際には以前の投稿も新しい投稿も両方とも投票の対象にします.
- 今日(11/30)の講義では掲示板への書き込みは課題ではありません.前回の課題に取り組んでください.質問のある人,前回の課題を終了してしまって,自分で取り組んだ課題を見て欲しいひとだけ11/30の質問に投稿してください.
- 12/6(火)までに投稿された作品は12/7(水)の講義の際にコンテスト(相互評価)を開催します.
- 途中でiMac端末の画面を取り込んでpng形式のファイルに変換する必要があります.これには,Finderを使って,「アプリケーション」-> 「プレビュー.app」を起動して,「ファイル」->「スクリーンショットを撮る」->「選択部分」で取り込む部分を選ん
でから,「ファイル」->「別名で保存」でフォーマット「PNG」を選んで,適当なフォルダに保存してください.
- 他のやり方も,はいぱーワークブック「22.4.3.3グラブ」に書いてあるので,参照してください.はいぱーワークブックにあるように,スクリーン全体をキャプチャーしたり,選択部分だけをキャプチャーする分には問題ないようですがが,ウインドウを選択してキャプチャーするとうまくいかないようです.
- CFIVEの掲示板に画像を貼る方法は,FAQ「CFIVE掲示板機能」の「掲示板の本文中に画像を張り付けたいのですがどうすればよいですか?」にあります(「#ref(ファイル名)のファイル名には拡張子(.png, .jpeg, .gif)はつけないことに注意).練習のために,
テスト用掲示板に書き込むと良いです.