Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
28
Task/Partition-function-P/Lingo/partition-function-p.lingo
Normal file
28
Task/Partition-function-P/Lingo/partition-function-p.lingo
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
-- returns number of partitions of n
|
||||
on partitions(n, res_table)
|
||||
if n < 2 then return 1
|
||||
if voidP(res_table) then
|
||||
res_table = []
|
||||
res_table[n] = 0
|
||||
else if res_table[n] then
|
||||
return res_table[n]
|
||||
end if
|
||||
res = 0
|
||||
i = 0
|
||||
param = 1
|
||||
repeat while param <= n
|
||||
if i mod 4 < 2 then
|
||||
res = res + partitions(n - param, res_table)
|
||||
else
|
||||
res = res - partitions(n - param, res_table)
|
||||
end if
|
||||
if i mod 2 then
|
||||
param = param + i + 2
|
||||
else
|
||||
param = param + i / 2 + 1
|
||||
end if
|
||||
i = i + 1
|
||||
end repeat
|
||||
res_table[n] = res
|
||||
return res
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue