複数のターゲットにリソースを均等にデプロイ

複数のターゲットにリソースを均等にデプロイ

私はこの問題を正しく解決するのに十分なbashに慣れていません。私が解決したいことを簡単に説明します!

私は次のファイルにGの複数のパスとサイズを保存します。

1,/bin/path1
5,/bin/path2
25,/bin/path3

そのような経路は何百ものあります。

移動するターゲットディスクを含む2番目のファイルがあります。たとえば、GBは残りのスペースを表します。 (sizeGB,DISK)

376,DISK1
555,DISK2

通常、さまざまなサイズの数百の領域があるため、2つのディスク間で領域を「均等に」整列させる最良の方法は何ですか?つまり、移動するスペースが600GBの場合はDISK2に〜400G、DISK1に〜200Gを割り当てます(したがって、残りのサイズはDISK1の場合は176GB、DISK2の場合は155GBになります)。

出力は次のとおりです。

PATH,DISK
PATH,DISK2

よろしくお願いします!

追記、

私はまた、他の人にこのことを正確にするよう求めるものではありません。私はどこで始めるべきかについての良いアドバイスや、これを行う実用的な方法についてのアイデアを探しています。

ベストアンサー1

これら2つのファイルを目的の言語の配列にロードします。ファイルを繰り返して、残りの空き領域が最大の宛先に移動します。そのターゲットの空き領域を移動したばかりのファイルサイズに縮小するだけです。

このアプローチは絶対に最もバランスのとれた配列を提供しませんが、多項式時間で解を計算できないことがわかります(P = NPでない限り...そうでない場合は、私を信じてください。)

おすすめ記事