プログラミング作法 第3章 設計と実装 3.1 マルコフ連鎖アルゴリズム
私にフローチャートを見せてテーブルを隠しておいたなら、私はずっとごまかされ続けるだろう。しかしテーブルを見せてくれればたいていはフローチャートなどいらない。一目瞭然だからだ。
Brooksの古典的名著の一節が示すように、データ構造の設計はプログラム開発の中心をなす決断と言える。データ構造のレイアウトが済んでしまえばアルゴリズムはすんなり決まることが多いし、コーディング作業そのものは比較的簡単だ。
このアルゴリズムは入力を互いにオーバーラップするフレーズのシーケンスとみなし、個々のフレーズを、複数語からなるプレフィクス(接頭語句)とプレフィクスに続く1語のサフィックス(接尾語)という2つの部分に分割する。
w1とw2にテキスト中の最初の2語を代入 w1とw2を表示 ループ: テキスト中に登場するプレフィクスw1w2のサフィックスのひとつw3をランダムに選択 w3を表示 w1とw2を w2とw3に入れ換える ループを繰り返す