さまざまなサイズの資産が数百ギガバイトあるBlu-rayディスクのセットに最適なアルゴリズムは何ですか?DVDを最適に書き込むためのアルゴリズムは何ですか
古いCDROMS、DVD、小型ハードドライブを多数集約し、すべてをMD5シグネチャでインデックスされたデータベースに格納しようとしています。確かに難しい課題。
現在、資産サイズ(通常はディレクトリサイズ)を降順に並べ替えることで、資産がなくなるまで、満たさないものをスキップして、最も大きなアセットを挿入リストに挿入します。ほとんど瞬時に実行されますが、必要ならば一晩中実行するのは大変です。
これは通常、95%以上の使用率を示しますが、他の組み合わせを使用して効率を上げる方法があると確信しています。ディスクイメージのような巨大なアイテムでは、私はこのプリミティブメソッドで非常に低い利用率を得ることができます。
考えてみたのは、一度に1つ、2つ、3つ、...という項目をすべて取り、最も高いバイト数の実行値を保持することです。< 25,025,314,816バイトは、それ。ある時点で非常に多くの資産を取り込んでいないという点に着くと、実行中の最高カウンタが指す配列を停止して使用してください。
これは最善のアルゴリズムですか?
アルゴリズム - コンビナトリアルと数学 - 組み合わせ論のような2つのPerlモジュールがあります。速い、より安定した、よりクールなアドバイスはありますか?
私の計画は、多数のディレクトリのサイズを計算し、焼くディスク数十枚の最適なコンテンツを表示するスクリプトを作成することです。
また、同じディスク上のディレクトリ全体を欲しいので、ファイル単位でファイルを埋めたいとは思っていません。
いいえKnappsackには2つの変数があります。 – Bytemain
それでは、すべての要素の値を1に設定することができます。 – anttix
確かにこれは可能ですが、バイトとキロバイトですか?それは何か仮想です。 – Bytemain