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,24 @@
defmodule RC do
defp masks(n) do
maxmask = trunc(:math.pow(2, n)) - 1
Enum.map(3..maxmask, &Integer.to_string(&1, 2))
|> Enum.filter_map(&contains_noncont(&1), &String.rjust(&1, n, ?0)) # padding
end
defp contains_noncont(n) do
Regex.match?(~r/10+1/, n)
end
defp apply_mask_to_list(mask, list) do
Enum.zip(to_char_list(mask), list)
|> Enum.filter_map(fn {include, _} -> include > ?0 end, fn {_, value} -> value end)
end
def ncs(list) do
Enum.map(masks(length(list)), fn mask -> apply_mask_to_list(mask, list) end)
end
end
IO.inspect RC.ncs([1,2,3])
IO.inspect RC.ncs([1,2,3,4])
IO.inspect RC.ncs('abcd')