Ich stieß vor kurzem auf ein Problem, in dem ich herausfinden muss, wie man Einzelteile in Eimer verteilt, aber ich muss alle Weisen finden, sie zu verteilen.Alle Verteilungen von Elementen zwischen Buckets
Die Eingabe kommt als ein Array von Ganzzahlen, die Ihnen sagen, das Maximum, das jede Spalte halten kann, und es muss N Menge von Elementen in dem Array sein.
zum Beispiel:
maxItems = 3
maximums = [4,2,1] # The order of maximums DOES matter meaning
# This means that the results of maximums = [2,4,1] are different from maximums = [1,2,4]
outputs = [[3,0,0],[2,1,0],[1,1,1],[2,0,1],[0,2,1]] # results are in no particular order
# notice how the sum of each result is equal to maxItems and each value in each of the rows are less than the value inside of maximums
ich versuchte, dieses Problem in Javascript zu lösen, aber ich bin nicht in der Lage, herauszufinden, wie dieses Problem zu nähern. Ich wollte damit beginnen, die ersten Spalten mit so vielen Zahlen wie möglich zu füllen und mich nach rechts zu bewegen, aber wenn das Maximum-Array größer wird, wird diese Methode ungenauer und ich weiß nicht genau, wie ich sie angehen soll.
Wenn Sie weitere Fragen haben, zögern Sie nicht zu fragen, ob Sie das Problem nicht verstehen.
Der Code, den ich mit in Javascript begann war
var all_combinations = function(N, maximums){
var empty = maximums.map(function(){return 0;}); // create empty array size of maximums filled with 0s
var s = 0;
for (var i = 0; i < empty.length && s < N;){
if (empty[i] >= maximums[i]){i++;continue;}
empty[i]++;
s++;
} // fill the left side with as many items as possible
// Then i would proceed to move one item at a time to the right side but some how i would need to do it for the whole array and this is where I get stuck.
};
Ich habe versucht, dieses Problem zu suchen, aber ich habe nie herausgefunden, wie es die Art und Weise zu tun, es wurde hier eingerichtet. Ich habe versucht, ähnliche Probleme zu finden, aber sie hatten immer nichts damit zu tun. Vielleicht suche ich das Problem falsch. Wenn jemand eine hilfreiche Ressource verlinken kann, wäre das großartig.
Wenn Sie irgendwelche Fragen haben, fragen Sie sie bitte. Ich werde auf das Beste meiner Fähigkeiten antworten.
bin ich einige Informationen fehlen dies eine akzeptable Frage zu machen? Schon eine enge Abstimmung und es sind noch keine 5 Minuten – ahitt6345
Nein, bist du nicht. Ich persönlich stimme der Abstimmung nicht zu, um das zu schließen, es ist nur eine etwas Computerwissenschaft schwere Frage, und die meisten Fragen zu SO sind einfach "bitte helfen, mein Programm zu reparieren" Art von Geschäften, so wird dieser ein wenig länger dauern, um zu antworten. Keine Sorge, Sie sind am richtigen Ort und ich denke, es ist eine gut durchdachte Frage. –
Wenn ich Sie verstehe, möchten Sie alle möglichen Permutationen innerhalb der durch 'maximums' definierten Grenze finden und sie mit der durch' maxItems' oder 'N' definierten Größe gruppieren. Hab ich recht? – Xiaoy312