Packages
fixpoint
0.8.13
0.22.2
0.22.1
0.21.5
0.21.4
0.21.3
0.21.2
0.21.1
0.21.0
0.20.6
0.20.5
0.20.4
0.20.3
0.20.2
0.20.1
0.19.5
0.19.4
0.19.3
0.19.2
0.19.1
0.18.2
0.18.1
0.17.6
0.17.5
0.17.4
0.17.3
0.17.2
0.17.1
0.16.5
0.16.4
0.16.3
0.16.2
0.16.1
0.16.0
0.15.6
0.15.5
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.9
0.14.8
0.14.7
0.14.6
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.13.5
0.13.4
0.13.2
0.13.1
0.12.9
0.12.8
0.12.7
0.12.6
0.12.5
0.12.4
0.12.2
0.12.1
0.11.8
0.11.7
0.11.6
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.10.7
0.10.6
0.10.5
0.10.4
0.10.3
0.10.2
0.10.1
0.9.12
0.9.11
0.9.10
0.9.9
0.9.8
0.9.7
0.9.6
0.9.5
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.52
0.8.51
0.8.50
0.8.49
0.8.48
0.8.46
0.8.44
0.8.43
0.8.42
0.8.41
0.8.40
0.8.39
0.8.38
0.8.37
0.8.36
0.8.35
0.8.34
0.8.33
0.8.32
0.8.31
0.8.30
0.8.29
0.8.28
0.8.27
0.8.26
0.8.25
0.8.24
0.8.23
0.8.22
0.8.21
0.8.20
0.8.19
0.8.18
0.8.17
0.8.16
0.8.15
0.8.14
0.8.13
0.8.12
0.8.11
0.8.10
0.8.9
0.8.8
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.10
0.7.9
0.7.8
0.7.7
0.7.6
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.12
0.5.11
0.5.10
0.5.9
0.5.8
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.3
0.4.2
0.4.1
0.4.0
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.3
0.2.2
0.2.1
0.1.3
0.1.2
0.1.1
0.1.0
Constraint Programming Solver
Current section
Files
Jump to
Current section
Files
data/reindeers/reindeers_all_perms.ex
defmodule ReindeersAllPerm do
## Generate-and-test solution
@deer ~w[comet rudolph prancer cupid blitzen donder vixen dancer dasher]a
def permutations([]), do: [[]]
def permutations(list),
do: for(elem <- list, rest <- permutations(list -- [elem]), do: [elem | rest])
def solve() do
for possible_permutation <- permutations(@deer),
p = possible_permutation |> Enum.with_index() |> Map.new(),
p.comet > p.prancer,
p.comet > p.rudolph,
p.comet > p.cupid,
p.blitzen > p.cupid,
p.blitzen < p.donder,
p.blitzen < p.vixen,
p.blitzen < p.dancer,
p.donder > p.vixen,
p.donder > p.dasher,
p.donder > p.prancer,
p.rudolph > p.prancer,
p.rudolph < p.donder,
p.rudolph < p.dancer,
p.rudolph < p.dasher,
p.vixen < p.dancer,
p.vixen < p.comet,
p.dancer > p.donder,
p.dancer > p.rudolph,
p.dancer > p.blitzen,
p.prancer < p.cupid,
p.prancer < p.donder,
p.prancer < p.blitzen,
p.dasher > p.prancer,
p.dasher < p.vixen,
p.dasher < p.dancer,
p.dasher < p.blitzen,
p.donder > p.comet,
p.donder > p.cupid,
p.cupid < p.rudolph,
p.cupid < p.dancer,
p.vixen > p.rudolph,
p.vixen > p.prancer,
p.vixen > p.dasher do
possible_permutation
end
end
end