2016 Update

This commit is contained in:
Tina Müller 2016-12-05 22:15:40 +01:00
parent 948b86eafa
commit dcf5d15da3
7965 changed files with 139854 additions and 31002 deletions

View file

@ -0,0 +1,25 @@
defmodule Knuth do
def s_of_n_creator(n), do: {n, 1, []}
def s_of_n({n, i, ys}, x) do
cond do
i <= n -> {n, i+1, [x|ys]}
:rand.uniform(i) <= n ->
{n, i+1, List.replace_at(ys, :rand.uniform(n)-1, x)}
true -> {n, i+1, ys}
end
end
end
results = Enum.reduce(1..100000, %{}, fn _, freq ->
{_, _, xs} = Enum.reduce(1..10, Knuth.s_of_n_creator(3), fn x, s ->
Knuth.s_of_n(s, x)
end)
Enum.reduce(xs, freq, fn x, freq ->
Map.put(freq, x, (freq[x] || 0) + 1)
end)
end)
IO.inspect results