Đến nội dung


Hình ảnh
* * * * - 7 Bình chọn

[Hỏi]Đố vui với LISP


  • Please log in to reply
391 replies to this topic

#341 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 22 January 2014 - 01:18 PM

1 vd nhỏ theo P/S

a = 0.1, b = 19.8, c = 19.9

Lỗi này tôi đã gặp, tìm hiểu và biết nguyên nhân đã lâu.

 

Nguyên nhân ở biến hệ thống LUNITS


  • 0

#342 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 22 January 2014 - 01:38 PM

Vấn đề mà câu đố muốn mang lại là: các bạn đã dẫn chứng được nhưng chưa lý giải rõ tại sao lại như thế, để mọi người biết mà cảnh giác.


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#343 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 22 January 2014 - 03:04 PM

Vấn đề mà câu đố muốn mang lại là: các bạn đã dẫn chứng được nhưng chưa lý giải rõ tại sao lại như thế, để mọi người biết mà cảnh giác.

 

1./ Ở Hệ đơn vị khác decimal : (biến hệ thống LUNITS - đã nêu) thì kết quả có thể sẽ sai. Hãy cảnh giác. 

2./ Với số thực thì tránh so sánh bằng hàm = mà hãy dùng hàm equal : vấn đề nhập số thực theo kiểu phân số (số thập phân vô hạn) là 1 minh chứng cho kết quả bị sai

 

HÃY CẢNH GIÁC  :P


  • 0

#344 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 22 January 2014 - 03:44 PM

Ý 1: chưa đồng ý. Vì có đặt LUNITS bằng 1->5 thì vẫn có thể sai.

Ý 2: các số "rõ mười mươi" như ví dụ của ndtnv vẫn sai, chứ chưa cần phải thập phân vô hạn. Đồng ý equal thì chắc hơn.

Đang chờ ndtnv giải thích tiếp.


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#345 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 22 January 2014 - 04:18 PM

Ý 1: chưa đồng ý. Vì có đặt LUNITS bằng 1->5 thì vẫn có thể sai.

Ý 2: các số "rõ mười mươi" như ví dụ của ndtnv vẫn sai, chứ chưa cần phải thập phân vô hạn. Đồng ý equal thì chắc hơn.

Đang chờ ndtnv giải thích tiếp.

 

- Đặt biến LUNITS khác decimal  ví dụ : (setvar "Lunits" 1) là chạy ra kết quả là sai như ví dụ của bác ndtnv

Ví dụ như của bác ndtnv các số "rõ mười mươi" như ví dụ của ndtnv là sai , đâu cần phải nhập đến số thập phân vô hạn .......

Đang chờ bác giải thích vì sao ý 1 : bác chưa đồng ý đây. ......

 

Command: (setvar "Lunits" 1)
1
Command: (defun C:HA()
(_>  (setq a (getreal "\nNhap so thu 1: "))
(_>  (setq b (getreal "\nNhap so thu 2: "))
(_>  (setq c (getreal "\nNhap tong so: "))
(_>  (if (= (+ a B) c)
((_>   (princ "Ket qua nay la dung!")
((_>   (princ "Ket qua nay la sai!")))
C:HA
 
Command: ha
 
Nhap so thu 1: 0.1
 
Nhap so thu 2: 19.8
 
Nhap tong so: 19.9
Ket qua nay la sai!"Ket qua nay la sai!"
 
Command:

Command: (setvar "Lunits" 1)

1

 

Command: 'VLIDE

Command:

Command: (defun C:HA()

(_>  (setq a (getreal "\nNhap so thu 1: "))

(_>  (setq b (getreal "\nNhap so thu 2: "))

(_>  (setq c (getreal "\nNhap tong so: "))

(_>  (if (= (+ a b ) c)

((_>   (princ "Ket qua nay la dung!")

((_>   (princ "Ket qua nay la sai!")))

C:HA

 

Command: ha

 

Nhap so thu 1: 0.1

 

Nhap so thu 2: 19.8

 

Nhap tong so: 19.9

Ket qua nay la sai!"Ket qua nay la sai!"


  • 0

#346 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 22 January 2014 - 04:26 PM

Có nghĩa là ý tôi thế này: cho dù bác có đặt Lunits là 1, 2, 3, 4, 5 đi nữa thì ví dụ mà bạn ndtnv đưa lên luôn cho kết quả sai, chẳng bao giờ cho kq đúng >> đặt LUNITS là chưa có cơ sở.


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#347 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 22 January 2014 - 04:51 PM

Có nghĩa là ý tôi thế này: cho dù bác có đặt Lunits là 1, 2, 3, 4, 5 đi nữa thì ví dụ mà bạn ndtnv đưa lên luôn cho kết quả sai, chẳng bao giờ cho kq đúng >> đặt LUNITS là chưa có cơ sở.

 

Chà, lúc đầu Tue_NV cứ tưởng do biến LUNITS chứ, bản chất của nó vẫn là sai số khi thực hiện phép tính mà thôi bác

Ví dụ : 

 

Command: (setq a (+ 0.1 19.8))

19.9

 

Command: (- a 19.9)

3.55271e-015 -> sai số đây bác 

 

Cho nên khi (= a 19.9) -> sẽ trả về nil

Command: (setq a (+ 0.1 19.8))
19.9

  • 0

#348 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 22 January 2014 - 08:22 PM

1 vd nhỏ theo P/S

a = 0.1, b = 19.8, c = 19.9

Lỗi này tôi đã gặp, tìm hiểu và biết nguyên nhân đã lâu.

@ndtnv: rất cám ơn nếu bạn nêu cái màu đỏ ấy lên. Đó là 1 cách giúp diễn đàn phát triển vậy.

@Tue_NV: câu trả lời rất huề vốn.


  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#349 ndtnv

ndtnv

    biết lệnh minsert

  • Members
  • PipPipPipPipPipPip
  • 437 Bài viết
Điểm đánh giá: 384 (khá)

Đã gửi 23 January 2014 - 08:41 AM

Số thực được lưu nhị phân trong máy theo t/c của IEEE (Institute of Electrical and Electronics Engineers: "Viện kỹ nghệ Điện và Điện tử")
tham khảo : http://en.wikipedia....ng-point_format
http://support.micro.../kb/42980/vi-vn

1 số double trong máy chiếm 64 bit gồm:
- 1 bit dấu (sign)
- 11 bit Phần mũ (exponent)
- 52 bit Phần định trị (mantissa)
Vì vậy 1 số thập phân khi lưu trong máy chỉ chính xác nếu:
1. Là số nhị phân hữu hạn (dạng A/B với b=2^n)
2. Phần mantissa ngắn hơn 52 bit
Trường hợp 1: như ở VD trong bài trên, các số a, b, c đều không phải là số nhị phân hữu hạn mặc dù chúng là số thập phân hữu hạn
Trường hợp 2: khi thực hiện các phép toán trên các số chính xác, phần mantissa của kết quả có thể dài hơn 52 bit nên kết quả có thể không còn chính xác.
Test:

(setq a (expt 2 30))
(setq b (/ (- (expt 2 22) 1.) (expt 2 22)))
(setq c (/ (- (expt 2 23) 1.) (expt 2 23)))

(- (- (+ a b ) a) b ) ; = 0
(- (- (+ a c) a) c) ; = 1.19209e-007

  • 3

#350 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 26 January 2014 - 06:46 PM

Thử cái này:

 

(defun finditem(item li)
  (setq n -1)
  (vl-remove nil (mapcar '(lambda(x) (setq n(1+ n)) (if (= item x) n nil)) li))
)


  • 0

#351 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 26 January 2014 - 06:50 PM

sory không đọc hết 18 trang này , chỉ đọc trang 1 nên trả lời câu hỏi trang 1.


  • 0

#352 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 31 January 2014 - 12:40 AM

Chúc mừng năm mới Giáp Ngọ 2014 !

Nhân dịp năm mới Con Ngựa 2014, xin gởi các bạn lời chúc Tết, đồng thời gởi luôn câu đố Xuân về con… Thỏ, để nhâm nhi với mứt gừng:

Ngựa thì chạy nhanh hơn Thỏ (?), nhưng Thỏ thì đẻ nhanh hơn Ngựa! Tháng nào cũng thấy chúng đẻ. Đẻ nhanh đến nỗi, bắt đầu từ tháng 3 trở đi, cứ đếm Thỏ thì thấy bằng tổng số Thỏ đếm được của tháng trước và tháng kề trước (VD: đếm ở tháng thứ 6 thì bằng đếm ở tháng thứ 5 cộng với đếm ở thàng thứ 4: 13=8+5), như dãy sau:

1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 , 55 , 89 , 144 , 233 , 377 , 610 , 987 , ...

Hãy lập hàm lisp tính kết quả của số Thỏ đếm được theo tháng n và cho biết thời gian chạy chương trình.

Ví dụ gọi hàm cho tháng thứ 8: (THANG 8) >> 34 ; với thời gian chạy 12 (millisecs).

Điều kiện: hàm phải chạy nhanh cỡ như Thỏ đẻ!

Ai lập được hàm có tốc độ tương đương hoặc nhanh hơn hàm của tác giả sẽ nhận được lì xì  nhiều « Like » lấy hên đầu năm.

File Vlx đối chứng của tác giả post sẵn ở đây, sau Tết sẽ công bố cách gọi hàm:

http://www.cadviet.c..._tho_de_con.zip


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#353 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5678 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 31 January 2014 - 08:34 AM

Chúc bác năm mới vui ^^ Ket nhìn k nhầm thì đây là dãy Fibonacci với n >= 2, có thể áp dụng đệ quy hoặc công thức Binet (sử dụng tỉ lệ vàng) để tính ? Ket k có máy nên k chuyển thành code được
  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#354 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 07 February 2014 - 09:32 PM

Chúc bác năm mới vui ^^ Ket nhìn k nhầm thì đây là dãy Fibonacci với n >= 2, có thể áp dụng đệ quy hoặc công thức Binet (sử dụng tỉ lệ vàng) để tính ? Ket k có máy nên k chuyển thành code được

Like lấy hên đầu năm. Đồng thời chúc Ket năm mới có bạn gái mới.

1). Đệ quy: đoán là chạy ì ạch.

2). Dùng công thức Binet: khi số n đủ lớn (nhưng vẫn trong giới hạn Cad tính được) thì kết quả không chính xác.

Đang mong để dòm và test cái lisp của Ket và mọi người xem có đạt 2 tiêu chí: đúngnhanh không?


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#355 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 08 February 2014 - 08:43 AM

Xin Khai bút đầu năm:

(defun c:fbn(/ n f)
(setq n (1+ (getint "Nhap thang thu :")))
(setq f (/ (1+ (sqrt 5)) 2))
(rtos (/ (- (expt f n) (expt (1- f) n)) (sqrt 5)) 2 0)
)
(defun c:fbn(/ n f)
(setq n (1+ (getint "Nhap thang thu :")))
(setq f (/ (1+ (sqrt 5)) 2))
(rtos (/ (- (expt f n) (expt (1- f) n)) (sqrt 5)) 2 0)
)
(defun c:fbn(/ n f)
(setq n (1+ (getint "Nhap thang thu :")))
(setq f (/ (1+ (sqrt 5)) 2))
(rtos (/ (- (expt f n) (expt (1- f) n)) (sqrt 5)) 2 0)
)

  • 1

#356 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 09 February 2014 - 05:14 PM

Like bác Tue_NV đầu năm vì đã tham gia. Tuy nhiên, như đã nói với Ket ở trên là công thức Binet chỉ đúng khi n không quá lớn. Vì vậy, đáp án này chưa đạt tiêu chí "đúng", mặc dầu rất "nhanh".

VD: với n=70 thì:

Đáp án theo Tue_NV là "308061521170130"

Đáp án đúng phải là 308061521170129"

Mời mọi người tiếp tục!


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#357 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5678 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 09 February 2014 - 06:32 PM

Đúng là với giới hạn tính của CAD thì rất dễ sai số. Vậy tốt nhất quay trở lại cách cổ điển, vòng lặp :

(defun f(n / m s a b)(setq a 0 b 1.0)
   (setq m (getvar 'millisecs))
   (repeat n (setq s (+ a b) a b b s))
   (setq m (- (getvar 'millisecs) m))
   (princ (strcat "\nF(" (itoa n) ") : " (rtos s 2 2) "\n"(rtos m 2 2) " ms"))
(princ)   
 )

  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#358 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5678 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 09 February 2014 - 07:08 PM

Hoặc bỏ biến trung gian :

(defun f1(n / m a b)(setq a 0 b 1.0)
   (setq m (getvar 'millisecs))
   (repeat (1+ n) (setq b (+ a b) a (- b a)))
   (setq m (- (getvar 'millisecs) m))
   (princ (strcat "\nF(" (itoa n) ") : " (rtos a 2 2) "\n"(rtos m 2 2) " ms"))
(princ)   
 )

  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#359 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6007 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 12 February 2014 - 09:42 AM

Hoặc bỏ biến trung gian :

(defun f1(n / m a b)(setq a 0 b 1.0)
   (setq m (getvar 'millisecs))
   (repeat (1+ n) (setq b (+ a b) a (- b a)))
   (setq m (- (getvar 'millisecs) m))
   (princ (strcat "\nF(" (itoa n) ") : " (rtos a 2 2) "\n"(rtos m 2 2) " ms"))
(princ)   
 )

Hề hề hề,

Lisp này chỉ đúng với điều kiện số thỏ tháng đầu là 1 và số thỏ tháng thứ hai là 2. Trong trường hợp tổng quát số thỏ của tháng thứ nhất và tháng thứ hai nên để cho người dùng tự nhập vào mới có được đáp án đúng theo ý của bác DoanVanHa.bởi đề bài không cho trước các con số này. Bác DoanVanHa chỉ đưa ra một ví dụ về số thỏ tháng thứ nhất và số thỏ tháng thứ hai để người dùng hiểu cách tinh chứ đó không phải là các con số cố định.

Từ suy nghĩ này nên mình cải tạo mộtt chút lisp của bác Ketxu như sau:

 

(defun f1(n / m a b)

(setq a (getreal "\n Nhap so tho thang thu nhat: ")

         b (getreal "\n Nhap so tho thang thu hai: ")  )
(setq m (getvar 'millisecs))

(if (= n 1)

    (setq a a)

    (if (= n 2)

        (setq a b)

        (repeat (1- n) (setq b (+ a b) a (- b a)))

    )

)
(setq m (- (getvar 'millisecs) m))
(princ (strcat "\nF(" (itoa n) ") : " (rtos a 2 2) "\n"(rtos m 2 2) " ms"))
(princ)
)


  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#360 ndtnv

ndtnv

    biết lệnh minsert

  • Members
  • PipPipPipPipPipPip
  • 437 Bài viết
Điểm đánh giá: 384 (khá)

Đã gửi 12 February 2014 - 01:58 PM

Chúc mừng năm mới Giáp Ngọ 2014 !
Nhân dịp năm mới Con Ngựa 2014, xin gởi các bạn lời chúc Tết, đồng thời gởi luôn câu đố Xuân về con… Thỏ, để nhâm nhi với mứt gừng:
Ngựa thì chạy nhanh hơn Thỏ (?), nhưng Thỏ thì đẻ nhanh hơn Ngựa! Tháng nào cũng thấy chúng đẻ. Đẻ nhanh đến nỗi, bắt đầu từ tháng 3 trở đi, cứ đếm Thỏ thì thấy bằng tổng số Thỏ đếm được của tháng trước và tháng kề trước (VD: đếm ở tháng thứ 6 thì bằng đếm ở tháng thứ 5 cộng với đếm ở thàng thứ 4: 13=8+5), như dãy sau:
1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 , 55 , 89 , 144 , 233 , 377 , 610 , 987 , ...
Hãy lập hàm lisp tính kết quả của số Thỏ đếm được theo tháng n và cho biết thời gian chạy chương trình.
Ví dụ gọi hàm cho tháng thứ 8: (THANG 8) >> 34 ; với thời gian chạy 12 (millisecs).
Điều kiện: hàm phải chạy nhanh cỡ như Thỏ đẻ!
Ai lập được hàm có tốc độ tương đương hoặc nhanh hơn hàm của tác giả sẽ nhận được lì xì  nhiều « Like » lấy hên đầu năm.
File Vlx đối chứng của tác giả post sẵn ở đây, sau Tết sẽ công bố cách gọi hàm:
http://www.cadviet.c..._tho_de_con.zip

Theo đề bài thì số thỏ tháng thứ n = số Fibonacci thứ n+1.
Vì post sau nên chương trình phải khác với các chương trình trên là tính chính xác với các số lớn.
 
Trong đó:
t1: thời gian tính.
t2: thời gian xuất kết quả
http://www.cadviet.c...3/19626_tho.rar
 
Test ở đây: http://www.maths.sur...i/fibCalcX.html
Với n=9999 thời gian chạy bằng lisp lâu khoảng 3 lần
Tho(9999) : 33644764876431783266621612005107543310302148460680063906564769974680081442166662368155595513633734025582065332680836159373734790483865268263040892463056431887354544369559827491606602099884183933864652731300088830269235673613135117579297437854413752130520504347701602264758318906527890855154366159582987279682987510631200575428783453215515103870818298969791613127856265033195487140214287532698187962046936097879900350962302291026368131493195275630227837628441540360584402572114334961180023091208287046088923962328835461505776583271252546093591128203925285393434620904245248929403901706233888991085841065183173360437470737908552631764325733993712871937587746897479926305837065742830161637408969178426378624212835258112820516370298089332099905707920064367426202389783111470054074998459250360633560933883831923386783056136435351892133279732908133732642652633989763922723407882928177953580570993691049175470808931841056146322338217465637321248226383092103297701648054726243842374862411453093812206564914032751086643394517512161526545361333111314042436854805106765843493523836959653428071768775328348234345557366719731392746273629108210679280784718035329131176778924659089938635459327894523777674406192240337638674004021330343297496902028328145933418826817683893072003634795623117103101291953169794607632737589253530772552375943788434504067715555779056450443016640119462580972216729758615026968443146952034614932291105970676243268515992834709891284706740862008587135016260312071903172086094081298321581077282076353186624611278245537208532365305775956430072517744315051539600905168603220349163222640885248852433158051534849622434848299380905070483482449327453732624567755879089187190803662058009594743150052402532709746995318770724376825907419939632265984147498193609285223945039707165443156421328157688908058783183404917434556270520223564846495196112460268313970975069382648706613264507665074611512677522748621598642530711298441182622661057163515069260029861704945425047491378115154139941550671256271197133252763631939606902895650288268608362241082050562430701794976171121233066073310059947366875
t1 = 21797 ms , t2 = 16 ms

fib(10000)=33644764876431783266621612005107543310302148460680063906564769974680081442166662368155595513633734025582065332680836159373734790483865268263040892463056431887354544369559827491606602099884183933864652731300088830269235673613135117579297437854413752130520504347701602264758318906527890855154366159582987279682987510631200575428783453215515103870818298969791613127856265033195487140214287532698187962046936097879900350962302291026368131493195275630227837628441540360584402572114334961180023091208287046088923962328835461505776583271252546093591128203925285393434620904245248929403901706233888991085841065183173360437470737908552631764325733993712871937587746897479926305837065742830161637408969178426378624212835258112820516370298089332099905707920064367426202389783111470054074998459250360633560933883831923386783056136435351892133279732908133732642652633989763922723407882928177953580570993691049175470808931841056146322338217465637321248226383092103297701648054726243842374862411453093812206564914032751086643394517512161526545361333111314042436854805106765843493523836959653428071768775328348234345557366719731392746273629108210679280784718035329131176778924659089938635459327894523777674406192240337638674004021330343297496902028328145933418826817683893072003634795623117103101291953169794607632737589253530772552375943788434504067715555779056450443016640119462580972216729758615026968443146952034614932291105970676243268515992834709891284706740862008587135016260312071903172086094081298321581077282076353186624611278245537208532365305775956430072517744315051539600905168603220349163222640885248852433158051534849622434848299380905070483482449327453732624567755879089187190803662058009594743150052402532709746995318770724376825907419939632265984147498193609285223945039707165443156421328157688908058783183404917434556270520223564846495196112460268313970975069382648706613264507665074611512677522748621598642530711298441182622661057163515069260029861704945425047491378115154139941550671256271197133252763631939606902895650288268608362241082050562430701794976171121233066073310059947366875
2090 digits in 7.587 seconds
  • 4