1

第一に、私はプログラマーではなく、プログラミングやアルゴリズムを学んだことがありません。実際には、ほとんど awk または ruby​​ で、いくつかの bash をプログラムする必要があります。

今日のタスクでは、プレーン テキスト ファイルに巨大なデータ セット (浮動小数点数) があり、1 つのレコード/行があり、セットのすべての数値の合計がありますが、数値の一部 ( 1 つ) は負ですが、ファイルには表示されません (要素が負の場合は符号がありません)。

しかし、私はそれ/それらを見つけなければなりません:最初に正しい合計を計算しました( ですべての数字を追加してawk)、それらの符号は気にしませんでした。ここで、元の合計 (記号を考慮したもの) と新しい合計の差がわかりました。しかし、差分/2 のようにまったく同じ合計を持つデータセットのすべてのサブセットを見つける必要があります。

例えば:

DATA:
1,2,3,4,5

ORIG SUM: 
5  

これで、1+2+3+4+5 - ORIG SUM: 15-5=10 の差を計算できます。10/2 = 5 なので、合計が 5 になるすべてのサブセット、つまり [1,4]、[2,3]、[5] を見つける必要があります。

それを行う適切な方法はありますか?私は awk、ruby、シェル スクリプトを好みますが、python と perl の両方を使用できます (外部ライブラリをインストールする権利がないため、外部ライブラリを頻繁に使用する必要はありません)。

前もって感謝します。

4

1 に答える 1

2

SUBSET SUMコンピュータサイエンスで知られている問題のことですか?

ヒント: 関連する質問を見てください。その問題に関する多くの質問/回答があります。

于 2009-02-06T14:35:37.953 に答える