Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- range[x_, r_] := Module[{interval},
- i = IntegerPart[(x - 1)/r]; interval = Range[r i + 1, r i + r]];
- qflat[x_, r_] :=
- AnyTrue[Subsets[range[#, r] & /@ x, {2}],
- IntersectingQ[#[[1]], #[[2]]] &];
- flatQ[par_, r_] := AnyTrue[par, qflat[#, r] &];
- pickflat[par_, r_] :=
- Select[Transpose[{par, flatQ[#, r] & /@ par}], #[[2]] ==
- False &][[All, 1]];
- Needs["Combinatorica`"];
- par = SetPartitions[Range[1, 12]];
- SetPartitions[Range[1, 12]] // AbsoluteTiming // First
- pickflat[par, 4] // AbsoluteTiming // First
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement