Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.52 KB | None | 0 0
  1. range[x_, r_] := Module[{interval},
  2. i = IntegerPart[(x - 1)/r]; interval = Range[r i + 1, r i + r]];
  3. qflat[x_, r_] :=
  4. AnyTrue[Subsets[range[#, r] & /@ x, {2}],
  5. IntersectingQ[#[[1]], #[[2]]] &];
  6. flatQ[par_, r_] := AnyTrue[par, qflat[#, r] &];
  7. pickflat[par_, r_] :=
  8. Select[Transpose[{par, flatQ[#, r] & /@ par}], #[[2]] ==
  9. False &][[All, 1]];
  10. Needs["Combinatorica`"];
  11. par = SetPartitions[Range[1, 12]];
  12. SetPartitions[Range[1, 12]] // AbsoluteTiming // First
  13. pickflat[par, 4] // AbsoluteTiming // First
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement