2015-04-26 3 views
1

В javascript я получаю два числа, назовем их x & y и массив целых чисел со случайным int от 0 до 10 arrayints.Комбинации чисел до равных Всего

x это номер, который я пытаюсь получить, комбинируя y с любым из чисел в массивах.

, например: позволяет сказать, что х = 8 и у = 3 и arrayints состоит из чисел arrayints (1,7,2,7,4,5)

так х может равняться = у + 5 или х = у + 1 + 4

Все значения в х, у и arrayints будет случайным и всегда < = 10.

Пожалуйста, сообщите, если требуется дополнительная информация, и все будет в JavaScript или jquery без суеты что касается моего кода, я буду копировать и вставлять, но это будет всего лишь один кусок непонятных букв, которые дают мне головную боль.

function makex(x,y) { 
//this is how I get the array of random ints <=10 
    $("#div").children().each(function(n, i) { 
    var id = parseInt(this.id+"");  
    });       
} 
+0

Только с помощью добавления? Вычитание? Другие математические операторы? – Phrogz

+0

Что вы пробовали? В общем: добавьте 'y' в массив, затем найдите все перестановки (google this) и посмотрите, добавляются ли они каждый. Это не самый эффективный, но он эффективный. – Phrogz

ответ

1

Вот рекурсивное решение, которое возвращает массив целых чисел, которые добавляют до х, в том числе у (или пустой массив, если он не существует). Если вы хотите исключить y, тогда не стесняйтесь делать обертку для этого.

function make(x, y, intOptions) { 
    var z = x - y  
    if (intOptions.indexOf(z) !== -1) { 
     return [y, z]; 
    } else if (intOptions.length > 1){ 
     var i = intOptions.length; 
     var ans; 
     while (i--) { 
      ans = make(z, intOptions[i], intOptions.slice(0, i)) 
      if (ans.length) { 
       return [y].concat(ans); 
      } 
     }   
    } 
    return []; 
} 
+0

Ты бог, спасибо –

Смежные вопросы