20 lines
561 B
Plaintext
20 lines
561 B
Plaintext
defmodule Van_der_corput do
|
|
def sequence( n ), do: sequence( n, 2 )
|
|
|
|
def sequence( 0, _base ), do: 0.0
|
|
def sequence( n, base ) do
|
|
List.to_float( '0.' ++ ( for x <- sequence_loop(n, base), do: Integer.to_char_list(x) ) |> List.flatten )
|
|
end
|
|
|
|
def sequence_loop( 0, _base ), do: []
|
|
def sequence_loop( n, base ) do
|
|
new_n = div(n, base)
|
|
digit = rem(n, base)
|
|
[digit | sequence_loop( new_n, base )]
|
|
end
|
|
end
|
|
|
|
Enum.each(2..5, fn base ->
|
|
IO.puts "Base #{base}: #{inspect Enum.map(0..9, fn x -> Van_der_corput.sequence(x, base) end)}"
|
|
end)
|