balu: (Default)
от. Михайло ([personal profile] balu) wrote in [personal profile] euthanasepam 2021-07-13 07:26 am (UTC)

Спробував піпіськомірку на ванільному ємаксі:

(defun fibonacci (n)
  (let ( (vec) (i) (j) (k) )
    (if (< n 2) n
      (progn
          (setq vec (make-vector (+ n 1) 0) i 0 j 1 k 2)
          (setf (aref vec 1) 1)
          (while (<= k n)
            (setf (aref vec k) (+ (elt vec i) (elt vec j) ))
            (setq i (+ 1 i) j (+ 1 j) k (+ 1 k) ))
          (elt vec n) ))))

ELISP> (benchmark 1 (fibonacci 94000))
"Elapsed time: 0.000002s"
ELISP> (benchmark 1 (fibonacci 95000))
*** Eval error ***  Arithmetic overflow error

Вивело 18809 знаків. В принципі, ємакс навчився і bignum, такий як у python, але, наразі, щось там потрібно додатково включати.


Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting