Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
11
Task/Fibonacci-sequence/Smalltalk/fibonacci-sequence-1.st
Normal file
11
Task/Fibonacci-sequence/Smalltalk/fibonacci-sequence-1.st
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
Integer >> fibI
|
||||
|aNMinus1 an t|
|
||||
|
||||
aNMinus1 := 1.
|
||||
an := 0.
|
||||
self timesRepeat:[
|
||||
t := an.
|
||||
an := an + aNMinus1 .
|
||||
aNMinus1 := t.
|
||||
].
|
||||
^ an
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
Integer >> fibR
|
||||
(self > 1) ifTrue:[
|
||||
^ (self - 1) fibR + (self - 2) fibR
|
||||
].
|
||||
^ self
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
Integer >> fibBinet
|
||||
|phi rPhi|
|
||||
|
||||
phi := Float phi.
|
||||
rPhi := 1 / phi.
|
||||
|
||||
^ (1 / 5 sqrt) * ((phi raisedTo:self) - (rPhi raisedTo:self))
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
Integer >> fibBinetFloatE
|
||||
|phi rPhi|
|
||||
|
||||
phi := FloatE phi.
|
||||
rPhi := 1 / phi.
|
||||
|
||||
^ (1 / 5 sqrt) * ((phi raisedTo:self) - (rPhi raisedTo:self))
|
||||
25
Task/Fibonacci-sequence/Smalltalk/fibonacci-sequence-5.st
Normal file
25
Task/Fibonacci-sequence/Smalltalk/fibonacci-sequence-5.st
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
(10 to:1e6 byFactor:10) do:[:n |
|
||||
Transcript printCR:'----',n,'----'.
|
||||
Transcript printCR: n fibI.
|
||||
Transcript printCR: ([[n fibR] on:RecursionError do:['recursion']] valueWithTimeout:30 seconds) ? 'timeout'.
|
||||
Transcript printCR: n fibBinet.
|
||||
Transcript printCR: n fibBinetFloatE.
|
||||
].
|
||||
|
||||
Transcript cr; showCR:'Timing:'; showCR:'------'.
|
||||
[ 1000 fibI ] benchmark:'1000 fibI'.
|
||||
[ 1000 fibR ] benchmark:'1000 fibR' timeLimit:30 seconds.
|
||||
[ 1000 fibBinet ] benchmark:'1000 fibBinet'.
|
||||
[ 1000 fibBinetFloatE] benchmark:'1000 fibBinetFloatE'.
|
||||
[ 1000 fib ] benchmark:'1000 fib (builtin)'.
|
||||
|
||||
[ 10000 fibI ] benchmark:'10000 fibI'.
|
||||
[ 10000 fib ] benchmark:'10000 fib (builtin)'.
|
||||
|
||||
[ 100000 fibI ] benchmark:'100000 fibI'.
|
||||
[ 100000 fib ] benchmark:'100000 fib (builtin)'.
|
||||
|
||||
[ 1000000 fibI ] benchmark:'100000 fibI'.
|
||||
[ 1000000 fib ] benchmark:'1000000 fib (builtin)'.
|
||||
[ 2000000 fib ] benchmark:'2000000 fib (builtin)'.
|
||||
[ 10000000 fib ] benchmark:'10000000 fib (builtin)'
|
||||
Loading…
Add table
Add a link
Reference in a new issue