Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,24 @@
|
|||
defmodule Hofstadter do
|
||||
defp flip(v2, v1) when v1 > v2, do: 1
|
||||
defp flip(_v2, _v1), do: 0
|
||||
|
||||
defp list_terms(max, n, acc), do: Enum.map_join(n..max, ", ", &acc[&1])
|
||||
|
||||
defp hofstadter(n, n, acc, flips) do
|
||||
IO.puts "The first ten terms are: #{list_terms(10, 1, acc)}"
|
||||
IO.puts "The 1000'th term is #{acc[1000]}"
|
||||
IO.puts "Number of flips: #{flips}"
|
||||
end
|
||||
defp hofstadter(max, n, acc, flips) do
|
||||
qn1 = acc[n-1]
|
||||
qn = acc[n - qn1] + acc[n - acc[n-2]]
|
||||
hofstadter(max, n+1, Map.put(acc, n, qn), flips + flip(qn, qn1))
|
||||
end
|
||||
|
||||
def main(max \\ 100_000) do
|
||||
acc = %{1 => 1, 2 => 1}
|
||||
hofstadter(max+1, 3, acc, 0)
|
||||
end
|
||||
end
|
||||
|
||||
Hofstadter.main
|
||||
Loading…
Add table
Add a link
Reference in a new issue