Difference between revisions of "Fibonacci"
Line 8: | Line 8: | ||
<code>FibonacciTestSuite</code> | <code>FibonacciTestSuite</code> | ||
− | + | =Studio (Required)= | |
− | + | ==RecurrenceRelationSequentialFibonacciCalculator== | |
recurrence relation: Fn = Fn-1 + Fn-2 | recurrence relation: Fn = Fn-1 + Fn-2 | ||
seed values: F0=0, F1=1 | seed values: F0=0, F1=1 | ||
− | + | ==RecurrenceRelationParallelFibonacciCalculator== | |
Use futures to add parallelism. | Use futures to add parallelism. | ||
− | + | ==MemoizationSequentialFibonacciCalculator== | |
Implement the recurrence relation algorithm but employ memoization for the win. | Implement the recurrence relation algorithm but employ memoization for the win. | ||
− | + | ==MemoizationParallelFibonacciCalculator== | |
− | + | ==DynamicIterativeSequentialFibonacciCalculator== | |
− | + | =Fun (Optional)= | |
− | + | ==DynamicRecursiveSequentialFibonacciCalculator== | |
− | + | ==LinearRecurrenceSequentialFibonacciCalculator== | |
− | + | ==RoundPhiToTheNOverSqrt5SequentialFibonacciCalculator== | |
(Phi ^ n) / sqrt( 5 ) | (Phi ^ n) / sqrt( 5 ) | ||
− | + | =Common Mistakes To Avoid= | |
make sure to return longs. lambdas will get cranky if you try to return an int instead of a long. | make sure to return longs. lambdas will get cranky if you try to return an int instead of a long. |
Revision as of 09:08, 20 September 2017
Contents
Background
The fibonacci sequence is a mathematical concept often used in computer science as a means to demonstrate iteration and recursion. Although you should be familiar with it from CSE 131, we will use the fibonacci sequence to demonstrate memoization and dynamic programming. Follow these links for a quick recap on memoization, dynamic programming, and the fibonacci sequence.
Where to Start
You will need to return the number associated with a given position in the fibonacci sequence. For example, if 0 was fed in, the method should return 0. 1 should return 1, 2 should return 1, 3 should return 2, and so on.
JUnit Test Suite
FibonacciTestSuite
Studio (Required)
RecurrenceRelationSequentialFibonacciCalculator
recurrence relation: Fn = Fn-1 + Fn-2
seed values: F0=0, F1=1
RecurrenceRelationParallelFibonacciCalculator
Use futures to add parallelism.
MemoizationSequentialFibonacciCalculator
Implement the recurrence relation algorithm but employ memoization for the win.
MemoizationParallelFibonacciCalculator
DynamicIterativeSequentialFibonacciCalculator
Fun (Optional)
DynamicRecursiveSequentialFibonacciCalculator
LinearRecurrenceSequentialFibonacciCalculator
RoundPhiToTheNOverSqrt5SequentialFibonacciCalculator
(Phi ^ n) / sqrt( 5 )
Common Mistakes To Avoid
make sure to return longs. lambdas will get cranky if you try to return an int instead of a long.