Added my solutions so far
This commit is contained in:
43
ex-1-11.rkt
Normal file
43
ex-1-11.rkt
Normal file
@ -0,0 +1,43 @@
|
||||
#lang racket
|
||||
|
||||
;; for n=100
|
||||
;; iterative version takes roughly 0.008 milliseconds.
|
||||
;; recursive version does not seem like it will finish any time soon.
|
||||
;; for n=50
|
||||
;; iterative version takes roughly 0.003 milliseconds in drracket
|
||||
;; recursive version has not yet finished executing after a couple minutes, and I got bored.
|
||||
;; for n=25.
|
||||
;; iterative version takes 0.002ms
|
||||
;; recursive version takes 46.5 ms
|
||||
;; yeah. that's big. okay. this shit's important.
|
||||
;; I wonder how it would be with memoization.
|
||||
|
||||
|
||||
(define-syntax-rule (meas form)
|
||||
(let ([my-time (current-inexact-milliseconds)])
|
||||
(let ([res form])
|
||||
(- (current-inexact-milliseconds) my-time))))
|
||||
|
||||
|
||||
(define (recursive n)
|
||||
(if (< n 3)
|
||||
n
|
||||
(+ (recursive (- n 1))
|
||||
(* 2 (recursive (- n 2)))
|
||||
(* 3 (recursive (- n 3))))))
|
||||
(define (iter a b c n)
|
||||
(if (<= n 0)
|
||||
c
|
||||
(iter b c (+ c (* 2 b) (* 3 a)) (- n 1))))
|
||||
(define (iter-start n)
|
||||
(iter 0 1 2 (- n 2)))
|
||||
|
||||
(define (ex-1-11 n)
|
||||
(let loop ((i n))
|
||||
(if (< i 2)
|
||||
#t
|
||||
(if (= (recursive i) (iter-start i))
|
||||
(loop (- i 1))
|
||||
(begin
|
||||
(display "UNEQUAL!")
|
||||
(displayln i))))))
|
Reference in New Issue
Block a user