21/10/24 13:31:17.67 XB+g3pLb.net
>>259
単純計算で、1 から 9 までの数の順列は
9 × 9 × 9 × 9。いまどきのパソコンでは、
なんてことのない数字だ。
これを 9 × 8 × 7 × 6 に減らしたい欲がでてきたら、
ちょっとプログラマ向きの人だろう。
逆ポーランド記法で考えると「加減乗除」という
四つの演算があり、「四桁」という縛りがあるので、
数が四つで演算子が三つ。計七個のスタックがあればいい。
で、0 と 1 要素は数字で、6要素は演算子、ということが
わかっている。これを(一意に)網羅できるようなプログラムを
書くのには、どんなプログラミング言語が欲しいだろうか?
で、+とか×のような、交換法則が成立する演算子については、
ちゃんと順序づけをしてほしい。さらに、「10になる」という
縛りがあるのだけれど、途中で無限小数になっちゃうとややこしい
ことになってしまう。そうなると、「分数は分数のままに扱える
言語」であってほしい。そうなると、自分のプログラムの中で
作った式を処理系に渡して計算してもらわなくちゃいけないので、
LISP の EVAL 関数のようなものが欲しくなる。
「じゃあ、実際にどうやって実装するか?」まで考えると、
かなり興味深い話だと思う。