2017-04-23 1 views
0

J'aime me mettre au défi juste pour m'amuser et j'ai rencontré un problème que je ne peux tout simplement pas résoudre tout seul. J'ai essayé et essayé, mais je ne trouve pas de solution et c'est pourquoi je suis venu ici pour vous demander.Backtracking issue (Je pense?) - Javascript

Alors supposons que nous avons trois tableaux différents:

var y1 = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]; 
var y2 = [ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 ]; 
var y3 = [ 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30 ]; 

Nous avons aussi cinq entiers différents:

var z1 = 200; 
var z2 = 400; 
var z3 = 600; 
var z4 = 800; 
var z5 = 1000; 

Comment suis-je capable de voir le plus grand nombre possible, lorsque la formule ressemble à quelque chose comme ceci:

x = z1*y1[0] + z2*y1[0] + z3*y2[0] + z4*y2[0] * z5*y3[0]; 

... et j'ai seulement 25 points à utiliser pour remplacer le zéros dans l'équation?

Par exemple:

z1 * y1 [5] + z2 * y1 [5] + z3 * y2 [5] + z4 * y2 [5] * Z5 * Y3 [5] = 32000 (5 + 5 + 5 + 5 + 5 = 25)

z1 * y1 [0] + z2 * y1 [10] + z3 * y2 [0] + z4 * y2 [10] * z5 * y3 [5] = 35000 (0 + 10 + 0 + 10 + 5 = 25)

Je pense que je sais comment cela doit être fait (retour en arrière?) Mais je ne peux pas comprendre comment le faire exactement. Je ne pouvais pas non plus trouver ce type de problème sur Internet, donc si vous savez où regarder, ce serait génial, parce que je ne cherche pas de réponse directe, j'aimerais apprendre.

Alors toute aide serait grandement appréciée!

+0

Vous pouvez travailler sur la façon dont vous voulez résoudre le problème avec le premier papier et un crayon. Il n'y a pas grand-chose à propos de JavaScript qui est particulièrement bon ou mauvais pour une solution à cela. – Pointy

+0

Comme il s'agit d'une addition et d'une multiplication directes, et que les tableaux sont ascendants, trouver le plus grand nombre possible doit être égal à 'x = z1 * y1 [y1.length-1] + z2 * y1 [y1.length-1] + z3 * y2 [y2.length-1] + z4 * y2 [y2.length-1] * z5 * y3 [y3.length-1]; ' ** x = 480018000 ** – holmberd

+0

@Pointy J'ai essayé de résoudre ceci, la raison pour laquelle je le fais avec Javascript est simplement parce que je le sais le mieux. Je ne cherche pas de réponse à cette situation particulière, j'essaie de trouver un moyen de calculer cela quand il pourrait y avoir plus de variables ou de tableaux et pas les mêmes nombres que ceux présentés dans l'exemple. – Lumion

Répondre

0

Vous pouvez le voir comme ayant cinq machines (m) qui doivent effectuer un travail (n), avec des temps de traitement variables (z), et y indiquer quand programmer chaque travail.

En supposant une heuristique ascendante:

max(25) = z1*y1[0] + z2*y1[0] + z3*y2[5] + z4*y2[10] * z5*y3[10] Result: 480006000