public static List <List <long> > GenerateListAssignments(this IEnumerable <int> sizes, int potSize) { var augmented = sizes.Concat(potSize).ToList(); return(Assignments_ulong.Generate(augmented, potSize).Select(ula => { var ll = ula.ToStackLong(augmented.Count); ll.RemoveAt(ll.Count - 1); return ll; }).ToList()); }
static List <List <List <int> > > GeneratePartitions(int n) { var pp = Assignments_ulong.Generate(Enumerable.Repeat(1, n).Concat(n).ToList(), n); return(pp.Select(ss => MakePartition(ss.ToStackList(n + 1).Take(n).SelectMany(t => t).ToList()).ToList()).ToList()); }