Wie Select[Tuples[Range[0, n], d], Total[#] == n &]
, aber schneller?Aufzählung aller Partitionen in Mathematica
aktualisieren
Hier werden die drei Lösungen und Handlungs ihrer Zeit sind, von Permutationen gefolgt IntegerPartitions scheint am schnellsten zu sein. Timing bei 1, 7, 0,03 für rekursive, FrobeniusSolve und IntegerPartition Lösungen, die jeweils
partition[n_, 1] := {{n}}; partition[n_, d_] := Flatten[Table[ Map[Join[{k}, #] &, partition[n - k, d - 1]], {k, 0, n}], 1]; f[n_, d_, 1] := partition[n, d]; f[n_, d_, 2] := FrobeniusSolve[Array[1 &, d], n]; f[n_, d_, 3] := Flatten[Permutations /@ IntegerPartitions[n, {d}, Range[0, n]], 1]; times = Table[First[Log[Timing[f[n, 8, i]]]], {i, 1, 3}, {n, 3, 8}]; Needs["PlotLegends`"]; ListLinePlot[times, PlotRange -> All, PlotLegend -> {"Recursive", "Frobenius", "IntegerPartitions"}] Exp /@ times[[All, 6]]