作者: 閑舎
日時: 2002/5/09(18:07)
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@...>