[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [bep] getting prime numbers quickly



井上です。

実は縛即^h^h爆即バージョンまで読んで、しまったあ!宿題の解答を先に読ん
でしまったと思ってから、反応をせずにほおってありました。
きっとr高橋さんはまずconsを理解してひさよしまになってから自分で書いて
みて、その後でないと解答を読みたくない人だと思うのですが。

TAKAHASHI Naoto <ntakahas@...> writes:

> ここで primes の初期値を '(2 3) としていますが、6n±1法なので2と3で割っ
> てみるのは全くの無駄ですね。また最後に primes を値として返すわけでもな
> いので、変数名は divisors にでも変えて、初期値は '(5) とした方がいいで
> しょう。また '(5) は長さ1のリストなので、次の tail の初期値は
> (last divisors) ではなくて単に divisors になります。
> 
> また高速化を図るのなら当然バイトコンパイルしますから、わざわざ読みにく
> いインライン展開を使わず、defsubst を使うことにします。変数名も、より
> 整数っぽいものに変えます。結局次のようになります。

なるほど、目的はためておくことでなくて出力することという仕様になったん
ですね。
必要ならサーチに使わない別のリストに2, もつけて最後に返せばいいし。

どれくらい違うんでしょうね。
それぞれを100000くらいまでで試してみたい気がします。

# 今日もさぼりすぎているので後からにしよう

-- 
                    Koichi Inoue, ARGV
                    E-Mail: inoue@...
                    ICQ UIN: 74900690