[VisualWorks top] [Lecture] [OOA/OOD] [Jun] [Bibliography] [Quotations]

In Praise of Learning: bibliography and Others

  1. 新人必読10冊集
  2. October 25, 1999, RMS
  3. 関数のモデリング (お手本)

新人必読10冊集

教養編

専門編

折に触れて言及された書物

中村正三郎氏 の「アルゴリズム本あれこれ」 (DDJJ Aug, 1996 号, 翔泳社)

基本アルゴリズムの新し目の本

基本アルゴリズムの古典

エッセイ・読み物

毛色の変わったところ

コンパイラ: 基礎にある文法理論はテキスト処理アルゴリズムの宝庫

テキスト処理

プログラム理論

設計やオブジェクト指向

隠し玉


October 25, 1999, RMS

Free (not liberty)
  1. 擁護する、獲得する、
  2. 配布する、共有する、
  3. 資する、関係する、
引地さんから伺った、「RMS のハッカーの条件」
  1. コンピュータに関する才能
  2. ジョークの才能
 
聖イグニュシアス クラウス・ブラスキー
saint IGNUcius Klaus Blasquiz

関数のモデリング (お手本)

問題
f(θ) = (a - bd - bθ) cosθ + (aθ + ad + b) sinθ + c
a, b, c, d は任意の定数、
θ > 0
としたときの f(θ) = 0 の解
  1. 式を見る
    変数が 1 個。レンジが絞れる 振動関数。k * θ は振幅。
  2. グラフを見る
    定数をすべて 1 とおき、プロットしてみる。0 < θ < 4 πだとすると f(θ) = 0 は 3 つの解を持つことが判る。
  3. アルゴリズムを決める
    N 分割収束法 を採用することにする。
    N 分割収束法
    1. θのドメイン (定義域) を N 個に分割
    2. 求めるレンジ (値域) を絞る
    3. レンジが目的の値の付近となるドメインを探し出す
    4. 探し出したドメインを、再度 N 個に分割…… (以下同様に繰り返して、目的値に収束させる)
  4. コードを書く
    「レンジが目的の値の付近」ことは、f(a1) = k1 と f(a2) = k2 が f(b) = l を挟み込むかどうかで判定できる。 k1 - l の符号と k2 - l の符号が異なれば、それが挟み込んだことになる。
    「以下同様に繰り返し……」は末端再帰 (tail recursion) を使用することができる。
    ただ答えを出すだけではなく、途中経過をストリームに書き込めば便利。

cf.)

  1. 0 番
    Mathmatica やグラフ計算機 (Graphing Calculator) に突っ込むという大技がある。
  2. 多変数
    線形計画法 -> 多変量解析
  3. N が 2 のとき……
    二分法。バイナリー・サーチで使うアレである。
  4. さらに背景のドメイン
    これは の問題だろう + この質問は **** から来た -> *** 関連の仕事だろう

[VisualWorks top] [Lecture] [OOA/OOD] [Jun] [Bibliography] [Quotations] ]