風つかい さんこんにちは。
風つかいさんの、かかれたスクリプトは、辞書ファイルを読み込んで、それを
候補の単語に該当するかという動きと理解しました。自分の書いたスクリプトと
逆の発想かと考えています。確かに、今回の edict は、
-sh-2.05b$ wc -l edict
106011 edict
で、106011 行ですので、確かに総当りで探すよりは効率は考えるまでも無くいいと
思います。気が付きませんでした。
自分も連想配列は、よく使います、大げさにいえばこのおかげで awk を離れられない、、
というところです。
> ちょっと質問なんですが、くすのきさんのスクリプトで、heavy rain
> が出力される時は、 grep 'h.avyrai.' edict
> の時かと思いますが、英語の辞書に heavyrain という単語は、ありそうに
> ないという気もします。
/EDICT 10JUN03 V03-003/Main Japanese-English Electronic Dictionary File
/Copyright Electronic Dictionary Research & Development Group - 2003/
-sh-2.05b$ gawk -f puzzle2.awk
どしゃ降り [どしゃぶり] /(n) downpour/pouring rain/cloudburst/pelting rain/heavy rain/
ザーザー /(adv) heavy rainfall/(P)/
豪雨 [ごうう] /(n) heavy rain/cloudburst/downpour/(P)/
... ((省略))
大降り [おおぶり] /(n) heavy rain/storm/
土砂降り [どしゃぶり] /(n) downpour/pouring rain/cloudburst/pelting rain/heavy rain/(P)/
124578936: h.avy.rai
茅 [かや] /(n) hay/various gramineous grasses (e.g. eularies)/plants used for thatching/
137254968: hay.vari.
茅 [かや] /(n) hay/various gramineous grasses (e.g. eularies)/plants used for thatching/
.....
h.avy.rai でひっかかりますが、正しくは heavy(スペース)rai です。ただし、ここまでくれば
後ろのスペースについては、無視して .(ピリオッド)を、n と判断すれば、heavyスペースrain が
導けるのではないかなと思います。
何にしても、効率を考えると辞書を読み込んで検査するほうが明らかに効率はいいとは思います。
shinya-sawai@... (Y さ) さんの 答えは、「再帰呼び出し」を使うというとこ
ろで、「なんとなくわかる」のですが、すぐに思いついてすっとかけないうかばないですね。
最後に今回の問題は、組み合わせではなく、順列でした。<-- で OK ですよね。昔は数学得意だっ
たのですが高校一年を頂点にいまは見る影もありません。。
今回のパズルを解くと純粋に考えると、風つかいさんの答えが速そう。
頭の体操ということで、shinya-sawai@... (Y さ) さんの答えということでしょうか。