[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 09/01 00:11 / Filesize : 268 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

CommonLisp Scheme Part13



636 名前:デフォルトの名無しさん mailto:sage [2005/07/27(水) 04:38:27 ]
>>633 乗算回数最小はこれでどうだろう? 最速かどうかは知らない。

(define (pow2 x n)
  (define (pow2-sub l m r)
    (if (= m 0) r
        (let loop ((l l))
          (if (> (caar l) m) (loop (cdr l))
              (pow2-sub (cdr l) (- m (caar l)) (* (cdar l) r))))))
  (if (= n 0) 1
    (let loop ((m 1) (two^prevm 1) (two^m 2) (r x) (l (list (cons 1 x))))
      (if (<= two^m n)
          (let ((rr (* r r)))
            (loop (+ m 1) two^m (+ two^m two^m) rr (cons (cons two^m rr) l)))
          (pow2-sub l (- n two^prevm) r)))))







[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<268KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef