Alyssa P. Hackerはexpmodを書くのに多くの余分なことをやったと不満で, 結局べき乗の計算法は知っているから
(define (expmod base exp m) (remainder (fast-expt base exp) m))と単純に書ける筈だといった. これは正しいか. これも高速素数テストと同じに使えるか, 説明せよ.
テキストp.29の脚注48にあるように, ここでは200桁の整数が素数であるかどうかを問題としています.
expmodの引数であるbaseやexpに200桁の整数が与えられるため,
fast-exptで計算することは困難であり現実的ではありません.
そのため, p.28のexpmodの定義が必要となります.
0 件のコメント:
コメントを投稿