2012-03-30 17 views
0

この問題を解決する最適なアルゴリズムは何でしょうか?私はこの問題について数時間を費やしました。しかし、それを並べ替えることができませんでした。値を分類するためのアルゴリズム

男はネックレスを購入して、各ピースの平均輝度が元のピースと同じかそれ以上になるように2つのピースにする予定でした。

ネックレスを分割するための基準は、二つの真珠セット間真珠の数で

1.差が高い方オリジナルネックレス又は3で真珠の数の10%を超えてはならないです。

2. 2つのネックレスの真珠の数の違いは最小限にする必要があります。

3.いずれかのネックレスの平均明るさが元のセットの平均明るさよりも小さい場合は、出力として0を返します。

4. 2つのネックレスの平均輝度が元のものより大きく、2つのネックレスの平均輝度の差が最小である必要があります。

5.各ピースの平均輝度は、元のピースよりも大きいか等しい必要があります。

+0

ことを教えてくださいので、パーティションの平均値の平均のために、それは不可能になるだろう平均を計算する標準的な方法さらに、もし1つのpアートが元の平均よりも高い場合、他の部分は低くする必要があります。つまり、探している結果を得るためにネックレスを正確に半分に分割する必要があります。 – Kaganar

+0

@Kaganar - 入力値は数値の集合です(例: - {10,6,3,9,7,2,5,8,4,1}、ここで0≦明るさ≦10)。 – eler

+0

あなたは、各パーツの平均が元のセットの平均以上になるように、2つのパーツに分割することを計画していますか? – Kaganar

答えて

0

この問題は(NPのどこかで)効率的に行うのがむしろ難しいです。

平均がXに設定されているとします。つまり、X = (x1 + x2 + ... + xn)/nです。

平均がSTのセットに分解し、それぞれstのアイテムがそれぞれセットに含まれているとします。

あなたは数学的に平均値の1、SまたはTが、Xよりも大きい場合、2の他のX未満でなければならないことを証明することができます。

したがって、条件が満たされる唯一の方法であるため、2つのセットは正確に同じ明るさでなければなりません。

これを知っていると、の問題に終わってしまいます。つまり、セット全体の合計の半分になる部分集合を探したいとします。それは難しいことが知られている問題です。 (それはNPに分類されていますが、大丈夫ですが、サブセットサム問題とまったく同じではありませんが、各輝度値からフルセットの平均を差し引くと、サブセットサム問題を解決すると答えが得られます。あなたの問題からサブセット合計の問題をどのように解くことができるかを見てください。)

したがって、速い方法はありません - 近似値または指数実行時間...ただし、多分thisが役立ちます。あなたは「明るさ」を測定する方法(あなたのケースでは、明るさのレベル)あなたのウェイトが有界である場合には回を実行している。

+0

大きな助けをいただきありがとうございます。私はそれを掘り下げてあなたに知らせるでしょう。 – eler

+0

私は理解したことを要約しましょう。まず、sumset sumを使ってサブセットを見つける必要があります。その後、サブセット内の各値からフルセットの平均を減算します。私は正しい方向に進んでいますか? – eler

+0

遅れて...申し訳ありませんが、他の順序で並べ替えます。まず、各輝度レベルから平均を差し引いてサブセット合計問題を解きます。次に、ゼロにセットされた合計は半分であり、残りのセットは他方である。 (ちなみに、両方のセットはゼロになるべきです。) – Kaganar

関連する問題