「Pythonによるプログラミング入門 東京大学教養学部テキスト アルゴリズムと情報科学の基礎を学ぶ」サポートページ
<Back>
本ウェブページでは「
Pythonによるプログラミング入門 東京大学教養学部テキスト アルゴリズムと情報科学の基礎を学ぶ」(森畑明昌著,東京大学出版会)についての情報をお伝えします。
itaライブラリについて
itaライブラリの
リファレンスマニュアルはこちらにあります。
訂正と補足
- p87: 「aその物体が運動する際の速度の変化」は「aはその物体が運動する際の速度の変化」の誤り。
- p132: 第7章以降、練習問題の番号と、その練習問題で作るべき関数名がずれてしまっている。なお、excheckを使う場合、「作るべき関数名」の方に従うこと。
- p156: 本書で定義したng_searchではn文字以下の単語を検索できない。例えば、3-gramを用いている場合、2文字の「検索」という単語を検索できない。ただし、これはn-gramを用いたアプローチ自体の問題というよりは、Pythonの辞書の限界というべきである。例えば、整列済みのリストに対する二分探索で検索を実現した場合、探した単語そのものがなかった場合にも「最も近い」単語を見つけられるため、例えば「検索」を探して「検索ア」を発見できる。
- p168: 「n本の等式からなるの連立1次方程式」は「n本の等式からなる連立1次方程式」の誤り。
- p178: 下から3行目の等式の右辺分母「(u(x+Δx,t)」とあるが、uの直前の開き括弧は必要ない。
- p197: 「2つのゲノム対象にした」は「2つのゲノムを対象にした」の誤り。
- p200: 「一緒くたにしてに分析」は「一緒くたにして分析」の誤り。
- p222, 表B.2: itaライブラリのバージョン0.2.0以上では、以下の点で実装が変更されている。
- ita.bench.bench関数はtime.time関数ではなくtime.perf_counter関数を用いている。
- ita.plot.linear_fit関数はnumpy.poly_fit関数ではなくnumpy.polynomial.ploynomial.polyfit関数を用いている。
- ita.excheck.excheck関数の実装はunittestライブラリを用いたものに変更された。それに伴い出力結果が一部変更されている。
第7刷では訂正済みの内容
- p36: 練習問題3.3ではr≠1を仮定している。
- p222, 表B.2: ita.plot.image_show関数はmatplotlib.pypolt.table.imshow関数ではなくmatplotlib.pypolt.imshow関数を用いている。
第5刷では訂正済みの内容
- p189: ex11_3では重力加速度g = 9.8であると想定している。また入出力例は、Δt = 0.1として(Δt = 0.3は長すぎる)、ex11_3(math.pi / 3, 0.1, 0.1, 10)を入力し、[0.19849265548784756, -0.8434602117471326, -1.1534038231401118, -0.5674813469743563, 0.5452008144627251, 1.149664969961521, 0.8597546326563921, -0.17268450881947162, -1.0367326539659518, -1.0572500815941208]が得られていなければならない。
- p209: モンテカルロ法を用いてk-means法を行うプログラム中、「m = len(s[0]) # 各要素の属性数」の一行は不要。
第4刷では訂正済みの内容
- 本書を通して「JuPyter」とあるのは「Jupyter」の誤り。
- p18: 体感温度の計算式が「T - 0.4・(T - 10) / (1 - H / 100)」とあるのは「T - 0.4・(T - 10) ・ (1 - H / 100)」の誤り。
- p100: 「画像描画のキャンパス」とあるのは「画像描画のキャンバス」の誤り。
- p132: 「100回テストをすれば1桁精度が上がる」とあるのは「テスト回数を100倍にすれば1桁精度が上がる」の誤り。
- p168: 「後退代入では、eraseがO(n)」とあるのは「後退代入では、calc_resultがO(n)」の誤り。
第3刷では訂正済みの内容
- p18: 「変数hegihtの値を『現在のhegihtの値 + 0.03』に変更する」とあるのは「変数heightの値を『現在のheightの値 + 0.03』に変更する」の誤り。
- p24: 練習問題2.4で「(b - √b2 -4ac)/2 」とあるのは「(- b - √b2 -4ac)/2」の誤り。また「a=2、b=-3、c=2」とあるのは「a=2、b=-3、c=1」の誤り。さらに、実行結果も0.5でなければならない。
- p34: 「関数内で定義した関数は関数外では使えない」は「関数内で定義した変数は関数外では使えない」の誤り。
- p86: 練習問題5.7を通して、位置 (i, j) とは「y座標がi、x座標がj」に対応する。また、全ての人は同時に移動するものとする。
- p86: 練習問題5.7の実行例では引数roomを変更することで結果を返しているが、ita version 0.1.1 以降のexcheckでは返値として結果を返すものとして動作する。
- p101: 練習問題6.1で「正整数n」とあるのは「2以上の整数n」の誤り。
- p102: ex6_4の実行例は「ex6_4(10, 0.6, 0.3, 0.25, 8)」の誤り。
- p124: fib関数の定義中「#再帰による組合せ数の計算」とあるのは「#再帰によるフィボナッチ数の計算」の誤り。
- p129:「calc_pi」関数を呼んでいるのは「calc_pi_k」関数の誤り。
- p198: 練習問題11.1で「正の整数」とあるのは「非負の整数」の誤り。
- p198: 練習問題11.2で「i≦0」とあるのは「i<0」の誤り。
- p199: 練習問題11.4で「9≦t≦10」とあるのは「9≦a≦10」の誤り。
- p201: 「距離を定める関数d(X,Y)が与えられているものとしよう」とあるが、以下のプログラムに対しても関数dを(自分で)プログラムする必要がある。例えばユークリッド距離(練習問題4.4)やマンハッタン距離を考えるのは一例である。
第2刷では訂正済みの内容
- p20: プログラム中のコメントと本文の説明の二箇所で「華氏32度」とあるのは「華氏60度」の誤り。
- p30: 関数print_bmi中の「変数height」と「変数weight」の定義は不要。
- p85: 図5.10と図5.11は縦10マス・横12マスとなっているが、正方形が得られるのが正しい。また、図5.11は出力例と白黒が反転してしまっている。
- p86: 「毎ステップ、以下の1と2を行う」とあるのは「毎ステップ、以下の1と2を両方この順に行う」の意味。
- p86: 実行例中「image」とあるのは「room」の誤り。
- p109: p値を計算するにあたっては、「新薬を投与しない場合に病気から快復する確率が『正確に』9/15(ないしはs/r)である」と仮定している。実際には、病気から快復した人数が『偶然』9/15であっただけかもしれない。この点を考慮すると、もう少し複雑な計算が必要になる。
プログラム
以下は書籍中のプログラムを抽出したものです。単体のプログラムとしては意味をなさない
部分もあります(例:同じ名前の関数が複数定義されている)。書籍とともに利用してください。
(c) 2019―, 東京大学出版会,森畑明昌