CommonLisp Scheme Part13at TECH
CommonLisp Scheme Part13 - 暇つぶし2ch249:デフォルトの名無しさん
05/06/07 17:54:02
もうちょっとだけ、Cで
245を書いて、247を読んで、ちょっと考えてやっと気づいたんですけど
この問題の本質って、実はめちゃめちゃ簡単ですね
LISPのコードで書かれてる段階では全く気づかなかったんですけど
Cで書いて、読んでみたら、やっと気づきました

必要になるかどうか分からない関数値は、
事前に計算しないで引数のまま渡す
タダそれだけですね

int tarai(int x, int y, int z);
int tarai_sub(int x, int y, int z_x, int z_y, int z_z) {
 if (x > y) {
  int z = tarai(z_x, z_y, z_z);
  return tarai_sub(tarai(x-1,y,z), tarai(y-1,z,x), z-1, x, y);
 }
 return y;
}
int tarai(int x, int y, int z) { return tarai_sub(x, y, z, z, 0); }

このコードなら、Cに疎いLISPerの方々でも余裕で理解できるでしょう

なんかこう、高度なというか表現力や抽象化能力の高い道具が
問題の本質を逆に隠してしまっていたような、そんな気がします


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch