Zazel <zazel@...> さん writes.
> 組合せの生成はそれほど行数を食っていませんが(実質的には4行)、
> 残りの足し算の部分が巨大です。ここは1回目のスクリプトを汎用化して
> 無関係な文字を破壊しないように変更して使ってます。その代わり
> さらに遅くなりました。
他の言語は数学演算の関数を内蔵してますからね。自前で作るとなると巨大化は
まあやむをえないというか、このくらいに収まっていれば立派というか。私のノー
ト環境だと(ちょっと遅いです)、
time echo 128 64 32 16 8 4 2 1 | sed -f dice.sed > s.dat
の結果は、
real 0m3.922s
user 0m3.124s
sys 0m0.200s
real 0m3.595s
user 0m2.874s
sys 0m0.150s
real 0m3.209s
user 0m2.473s
sys 0m0.190s
くらい。dune さんの Perl Script では、
time perl dice.pl > p.dat
real 0m1.659s
user 0m0.090s
sys 0m0.160s
real 0m0.581s
user 0m0.040s
sys 0m0.070s
real 0m0.593s
user 0m0.030s
sys 0m0.080s
となって、確かに Perl が速くなりますね。ちなみに awk だと(Yささん)
time gawk -f dice.awk < a.dat > aa.dat
real 0m0.796s
user 0m0.150s
sys 0m0.100s
real 0m0.619s
user 0m0.160s
sys 0m0.100s
real 0m0.763s
user 0m0.130s
sys 0m0.150s
というところ。
--
本田博通(閑舎)
Hiromichi Honda <raku@...>