Non-transitive dice: Difference between revisions

m
m (compatibility fix for versions < 1.5)
Line 286:
{{trans|Python}}
<lang julia>import Base.>, Base.<
using Memoize, Combinatorics
struct Die
Line 308:
""" True iff ordering of die in dice is non-transitive """
isnontrans(dice) = length(dice) > 1 && all(x -> x[1] < x[2], zip(dice[21:end-1], dice[2:end])) && dice[1] > dice[end]
findnontrans(alldice, n=3) = [perm for perm in permutations(alldice, n) if isnontrans(perm)]
Line 343:
nontrans = unique(map(x -> sort!(x, lt=(x, y)->x.name<y.name), findnontrans(dice, N)))
println("\n Unique sorted non_transitive length-$N combinations found: $(length(nontrans))")
for list in (isempty(nontrans) || faces < 5 ? nontrans : [nontrans[end]])
println(faces < 5 ? "" : " Only printing last example for brevity")
for (i, die) in enumerate(list)
4,105

edits