与えられた方程式
2(p 1 ) + 3(p 2 ) + 7(p 3 ) >= 257のように
p 1、p 2、p 3のすべての可能な組み合わせを見つける必要があります。これにより 、上記のステートメントが真になり、結果の合計 (方程式の左側) がすべての x nが既知の場合に最小になります。
のような一般的なケースのアルゴリズムを調べてみました
(x 1 )(p 1 ) + (x 2 )(p 2 ) + (x 3 )(p 4 ) + ... + (x n )(p n ) >= ターゲット
そして、ナップザック問題とサブセット和アルゴリズムの解決策に出くわしましたが、それらはこの問題とまったく同じではありませんでした。
p nの下限値を持つ Python 3.x のアルゴリズムを使用する前に試してみましたが、それでも O(とんでもない) 時間の複雑さで実行されます。
明らかに、ここでの数はすべて自然数であり、そうでなければ無限の解が存在します。