Created
August 13, 2009 22:01
-
-
Save dallas/167489 to your computer and use it in GitHub Desktop.
having fun with Hash initializer and the Fibonacci Sequence
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Having some fun with a simple Fibonacci sequence Hash! | |
fibonacci = Hash.new {|hash, key| hash[key] = hash[key - 1] + hash[key - 2]} | |
#=> {} | |
# Gotta get things started here… | |
fibonacci[1] = 1 | |
#=> 1 | |
fibonacci[0] = 0 | |
#=> 0 | |
fibonacci[10] | |
#=> 55 | |
fibonacci | |
#=> {9=>34, 0=>0, 10=>55, 1=>1, 2=>1, 3=>2, 4=>3, 5=>5, 6=>8, 7=>13, 8=>21} | |
fibonacci[100] | |
#=> 354_224_848_179_261_915_075 # underscores added in | |
fibonacci | |
# ready for this? | |
#=> {85=>259695496911122585, 66=>27777890035288, 47=>2971215073, 28=>317811, 9=>34, 95=>31940434634990099905, 76=>3416454622906707, 57=>365435296162, 38=>39088169, 19=>4181, 0=>0, 86=>420196140727489673, 67=>44945570212853, 48=>4807526976, 29=>514229, 10=>55, 96=>51680708854858323072, 77=>5527939700884757, 58=>591286729879, 39=>63245986, 20=>6765, 1=>1, 87=>679891637638612258, 68=>72723460248141, 49=>7778742049, 30=>832040, 11=>89, 97=>83621143489848422977, 78=>8944394323791464, 59=>956722026041, 40=>102334155, 21=>10946, 2=>1, 88=>1100087778366101931, 69=>117669030460994, 50=>12586269025, 31=>1346269, 12=>144, 98=>135301852344706746049, 79=>14472334024676221, 60=>1548008755920, 41=>165580141, 22=>17711, 3=>2, 89=>1779979416004714189, 70=>190392490709135, 51=>20365011074, 32=>2178309, 13=>233, 99=>218922995834555169026, 80=>23416728348467685, 61=>2504730781961, 42=>267914296, 23=>28657, 4=>3, 90=>2880067194370816120, 71=>308061521170129, 52=>32951280099, 33=>3524578, 14=>377, 100=>354224848179261915075, 81=>37889062373143906, 62=>4052739537881, 43=>433494437, 24=>46368, 5=>5, 91=>4660046610375530309, 72=>498454011879264, 53=>53316291173, 34=>5702887, 15=>610, 82=>61305790721611591, 63=>6557470319842, 44=>701408733, 25=>75025, 6=>8, 92=>7540113804746346429, 73=>806515533049393, 54=>86267571272, 35=>9227465, 16=>987, 83=>99194853094755497, 64=>10610209857723, 45=>1134903170, 26=>121393, 7=>13, 93=>12200160415121876738, 74=>1304969544928657, 55=>139583862445, 36=>14930352, 17=>1597, 84=>160500643816367088, 65=>17167680177565, 46=>1836311903, 27=>196418, 8=>21, 94=>19740274219868223167, 75=>2111485077978050, 56=>225851433717, 37=>24157817, 18=>2584} | |
fibonacci.sort.map(&:last) | |
#=> [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040, 1346269, 2178309, 3524578, 5702887, 9227465, 14930352, 24157817, 39088169, 63245986, 102334155, 165580141, 267914296, 433494437, 701408733, 1134903170, 1836311903, 2971215073, 4807526976, 7778742049, 12586269025, 20365011074, 32951280099, 53316291173, 86267571272, 139583862445, 225851433717, 365435296162, 591286729879, 956722026041, 1548008755920, 2504730781961, 4052739537881, 6557470319842, 10610209857723, 17167680177565, 27777890035288, 44945570212853, 72723460248141, 117669030460994, 190392490709135, 308061521170129, 498454011879264, 806515533049393, 1304969544928657, 2111485077978050, 3416454622906707, 5527939700884757, 8944394323791464, 14472334024676221, 23416728348467685, 37889062373143906, 61305790721611591, 99194853094755497, 160500643816367088, 259695496911122585, 420196140727489673, 679891637638612258, 1100087778366101931, 1779979416004714189, 2880067194370816120, 4660046610375530309, 7540113804746346429, 12200160415121876738, 19740274219868223167, 31940434634990099905, 51680708854858323072, 83621143489848422977, 135301852344706746049, 218922995834555169026, 354224848179261915075] | |
# now go impress your friends! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment