Fibonacci n-step number sequences: Difference between revisions

Content added Content deleted
m (→‎Lazy List with Closure: flag failing code)
(→‎{{header|Lua}}: Changed to match new task description)
Line 1,786: Line 1,786:


=={{header|Lua}}==
=={{header|Lua}}==
<lang Lua>function n_Nacci (n, seqLength, lucas)
<lang Lua>function nStepFibs (seq, limit)
local seq, nextNum = {1}
local iMax, sum = #seq - 1
if lucas then
while #seq < limit do
seq = {2, 1}
sum = 0
for i = 0, iMax do sum = sum + seq[#seq - i] end
else
for power = 1, n - 1 do
table.insert(seq, sum)
table.insert(seq, 2 ^ power)
end
end
while #seq < seqLength do
nextNum = 0
for i = #seq - (n-1), #seq do
nextNum = nextNum + seq[i]
end
table.insert(seq, nextNum)
end
end
return seq
return seq
end
end


local fibSeqs = {
function display (t)
{name = "Fibonacci", values = {1, 1}},
print(" n\t|\t\t\tValues")
{name = "tribonacci", values = {1, 1, 2,}},
print(string.rep("-", 75))
{name = "tetranacci", values = {1, 1, 2, 4}},
for k, v in pairs(t) do
io.write(" " .. k, "\t| ")
{name = "Lucas", values = {2, 1}}
}
for _, val in pairs(v) do
for _, sequence in pairs(fibSeqs) do
io.write(val .. " ")
io.write(sequence.name .. ": ")
end
print("...")
print(table.concat(nStepFibs(sequence.values, 10), " "))
end
end</lang>
end

local nacciTab = {}
for n = 2, 10 do
nacciTab[n] = n_Nacci(n, 16) -- 16 of each fits in one cmd line
end
nacciTab.lucas = n_Nacci(2, 16, "lucas")
display(nacciTab)
</lang>
{{out}}
{{out}}
<pre> n | Values
<pre>Fibonacci: 1 1 2 3 5 8 13 21 34 55
tribonacci: 1 1 2 4 7 13 24 44 81 149
---------------------------------------------------------------------------
tetranacci: 1 1 2 4 8 15 29 56 108 208
2 | 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 ...
Lucas: 2 1 3 4 7 11 18 29 47 76</pre>
3 | 1 2 4 7 13 24 44 81 149 274 504 927 1705 3136 5768 10609 ...
4 | 1 2 4 8 15 29 56 108 208 401 773 1490 2872 5536 10671 20569 ...
5 | 1 2 4 8 16 31 61 120 236 464 912 1793 3525 6930 13624 26784 ...
6 | 1 2 4 8 16 32 63 125 248 492 976 1936 3840 7617 15109 29970 ...
7 | 1 2 4 8 16 32 64 127 253 504 1004 2000 3984 7936 15808 31489 ...
8 | 1 2 4 8 16 32 64 128 255 509 1016 2028 4048 8080 16128 32192 ...
9 | 1 2 4 8 16 32 64 128 256 511 1021 2040 4076 8144 16272 32512 ...
10 | 1 2 4 8 16 32 64 128 256 512 1023 2045 4088 8172 16336 32656 ...
lucas | 2 1 3 4 7 11 18 29 47 76 123 199 322 521 843 1364 ...</pre>


=={{header|Maple}}==
=={{header|Maple}}==