Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
having fun with Hash initializer and the Fibonacci Sequence
# 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
You can’t perform that action at this time.