Рубин и математическая задача - PullRequest
0 голосов
/ 24 сентября 2011

Допустим, у меня должна быть тележка с промежуточной суммой 1836,36.Я должен достичь этой точной суммы, сложив несколько продуктов из списка с диапазоном цен.

Скажем, у меня есть несколько продуктов по 9.99, 29.99, 59.99, и я могу добавить несколько продуктов для удовлетворения желаемогоПромежуточный итог.Как можно было бы подойти к этой проблеме, используя Ruby?

Я подумал о том, чтобы ввести список цен в скрипт и каким-то образом заставить скрипт добавлять, пока он не достигнет промежуточной суммы, а затем выплюнуть цены, необходимые для достиженияпромежуточный итог ... просто не знаю, как к нему подойти.

Любые предложения приветствуются и заранее благодарны.Ждем идей.

1 Ответ

1 голос
/ 24 сентября 2011

9.99 * x + 29.99 * y + 59.99 * z = 1836.36

перебор всех перестановок x, y, z в диапазоне целых чисел

Например:

(0..9).each do |x|
  (0..9).each do |y|
    (0..9).each do |z|
       puts "x #{x} y #{y} z #{z}" if (x * 9.99 + y * 29.99 + z * 59.99 == 1836.36)
    end
  end
end

отменить любой ответ, сумма которого не равна 1835,36.

Что-то в этом роде ... не проверял его.Вы могли бы, вероятно, настроить и оптимизировать его, чтобы игнорировать случаи, которые наверняка не пройдут.

...