0

小計が1836.36のカートが必要だとしましょう。さまざまな価格のリストからいくつかの製品を合計することによって、この正確な量を達成する必要があります。

たとえば、9.99、29.99、59.99の製品がいくつかあり、それぞれをいくつか追加して、目的の小計を満たすことができます。Rubyを使用してこの問題にどのようにアプローチしますか?

価格のリストをスクリプトにフィードし、スクリプトを小計に達するまで追加してから、小計に達するために必要な価格を吐き出すことを考えました...どうすればよいかわかりません。

どんな提案でも歓迎し、事前に感謝します。アイデアを楽しみにしています。

4

1 に答える 1

1

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ではない回答はすべて破棄してください。

そのような何か...それをテストしていません。確かに合格しないケースを無視するように微調整して最適化することができます。

于 2011-09-23T22:33:35.763 に答える