puzzle : 4つの数で10を作る問題(または小町算?)
問2「9以下の自然数を4つ適当に選ぶ(重複を許す)。この4つの自然数と四則演算を用いて10を生成することを考えよう。このとき(1)条件を満たすどのような自然数の組み合わせでも生成することが可能であるか? (2)任意の組み合わせが与えられたときに、可能な計算順序の組み合わせを出力するアルゴリズムを考えよ。 (3)四則演算以外の演算について、一般に何かを語るための準備をせよ」
Twitter / satomi.k
(2)までやってみた。しかもシェルから呼び出せるようにインターフェイスまでつけてしまった。
core
background
電車に乗っている時の暇つぶしとして、切符に、意味はわからないけれども書かれている4桁の数字を四則演算で組み合わせて10にするという遊び。DSFF4のミニゲーム。いろんなところで見かけるパズルなのに、具体的な名前がよくわからない。小町算?(twitterで@iratqqさんに教えていただきました)
implementation(またの名を、このプログラムを書いた裏目的)
- gaucheの便利なライブラリの活用(特にgauche.parseopt)
- gaucheのオブジェクトシステム事始め(define-class, make, define-method)
- schemeではschemeの比較的プリミティブな機能だけを使った「勉強のためのプログラム」しか書いた無かったので、高級な機能を積極的に用い、まともに動くアプリケーションを書く練習をする
ソースコードは長いので最後につけます。
以下、長いので続きを読むで。