; logistic map
(define r #f)
(define x #f)
(define (reset z)
(set! r z)
(set! x 0.5))
(define (logistic)
(let ((new-x (* r x (- 1 x))))
(set! x new-x)
x))
(define (drop n)
(do ((n n (- n 1))) ((zero? n))
(logistic)))
(define (take n)
(let loop ((n n) (zs (list)))
(if (zero? n) (reverse zs)
(loop (- n 1) (cons (logistic) zs)))))
(reset 0.75)
(drop 1000)
(display (take 10)) (newline)
(reset 1.75)
(drop 1000)
(display (take 10)) (newline)
(reset 2.75)
(drop 1000)
(display (take 10)) (newline)
(reset 3.75)
(drop 1000)
(display (take 10)) (newline)
OyBsb2dpc3RpYyBtYXAKCihkZWZpbmUgciAjZikKKGRlZmluZSB4ICNmKQoKKGRlZmluZSAocmVzZXQgeikKICAoc2V0ISByIHopCiAgKHNldCEgeCAwLjUpKQoKKGRlZmluZSAobG9naXN0aWMpCiAgKGxldCAoKG5ldy14ICgqIHIgeCAoLSAxIHgpKSkpCiAgICAoc2V0ISB4IG5ldy14KQogICAgeCkpCgooZGVmaW5lIChkcm9wIG4pCiAgKGRvICgobiBuICgtIG4gMSkpKSAoKHplcm8/IG4pKQogICAgKGxvZ2lzdGljKSkpCgooZGVmaW5lICh0YWtlIG4pCiAgKGxldCBsb29wICgobiBuKSAoenMgKGxpc3QpKSkKICAgIChpZiAoemVybz8gbikgKHJldmVyc2UgenMpCiAgICAgIChsb29wICgtIG4gMSkgKGNvbnMgKGxvZ2lzdGljKSB6cykpKSkpCgoocmVzZXQgMC43NSkKKGRyb3AgMTAwMCkKKGRpc3BsYXkgKHRha2UgMTApKSAobmV3bGluZSkKCihyZXNldCAxLjc1KQooZHJvcCAxMDAwKQooZGlzcGxheSAodGFrZSAxMCkpIChuZXdsaW5lKQoKKHJlc2V0IDIuNzUpCihkcm9wIDEwMDApCihkaXNwbGF5ICh0YWtlIDEwKSkgKG5ld2xpbmUpCgoocmVzZXQgMy43NSkKKGRyb3AgMTAwMCkKKGRpc3BsYXkgKHRha2UgMTApKSAobmV3bGluZSk=