Data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 7387c8f97b
commit cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions

View file

@ -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