2025-02-05
教育用プログラミング言語「Pascal」の開発者、ニクラウス・ヴィルト氏によるプログラミング言語教科書「アルゴリズムとデータ構造」は、現代にも通じる入門書の元祖。ヴィルト氏が開発した言語「Modula-2」で解説されています。


「アルゴリズムとデータ構造 by N.ヴィルト 著 / 浦空昭二・國府方久歴 共訳」
表紙のフラクタルな図形がかっこいいですね!


本文中「再帰的アルゴリズム」にて解説と参考プログラムがありました。


「ヒルベルト曲線アニメーション 1次〜8次 on ES-Jam」

1次から8次の曲線を消さずに描き重ねています。62行のclearを有効にすれば、各次数ごとのヒルベルト曲線を見ることができます。

教科書にに習って記述したヒルベルト曲線 in JavaScriptは下記の通り const hilbert = (funcs, dirs, i) => { if (i > 0) { funcs[0](i - 1); line(dirs[0], u); funcs[1](i - 1); line(dirs[1], u); funcs[2](i - 1); line(dirs[2], u); funcs[3](i - 1); } }; const a = i => hilbert([d, a, a, b], [4, 6, 0], i); const b = i => hilbert([c, b, b, a], [2, 0, 6], i); const c = i => hilbert([b, c, c, d], [0, 2, 4], i); const d = i => hilbert([a, d, d, c], [6, 4, 2], i); 角度を使えば、もっとシンプルに記述することもできそうです。表紙の曲線とちょっと違うので、そちらの再現も含めて今度は、新しい教育用プログラミング言語「Wirth」にも移植してみたいと思います。

フラクタル、初めて知ったのは、福井高専1年生の頃、ジュラシックパークの小説版!

links
- Pascalリスペクトの教育用構造化プログラミング言語「Wirth」

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS