Donc la question me demande de représenter le niveau de faim de différentes personnes allant de 0 à 5 après avoir donné N sandwiches qui vont de 1 à 20. Le format de la matrice sera [N, h1, h2, h3, ...] le reste du tableau représentera les niveaux de faim de différentes personnes.Mon objectif est de minimiser la différence de la faim entre chaque paire de personnes dans le tableau en utilisant les sandwichs que j'ai disponible.Quelqu'un peut-il expliquer pourquoi mon compteur n'a pas diminué
donc mon plan était de passer par chaque élément et soustraire la différence par rapport à l'élément suivant qui fonctionne, mais je ne sais pas pourquoi il ne diminuera pas mon compteur sandwich.
def FoodDistribution(arr)
sandwiches = arr[0]
2.upto(arr.length - 1) do |i|
arr[1] -= arr[1] - arr[2] if arr[1] > arr[2]
if arr[i] > arr[i - 1] && arr[0] > 0
arr[i] -= (arr[i] - arr[i - 1])
arr[0] -= (arr[i] - arr[i - 1])
end
end
return arr
end
En général, "minimisation" des problèmes qui exigent la permutation, ce qui signifie que quelque part [ 'permutation'] (https://ruby-doc.org/core -2.4.0/Array.html # method-i-permutation) devrait entrer en jeu. Notez que 'sandwiches' ici est défini, mais jamais utilisé? – tadman