問題タブ [packing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - パッキング問題
私は次の問題を抱えています:
- 色の異なる同じ形のアイテムがいくつもあります(各色からいくつあるかわかります)
- これらのアイテムを、最小数のボックスを使用するように、指定された数(n)のアイテムをそれぞれ保持できるボックスにパックします。round_up(total_nr_of_items / n)
- 理想的な箱の数がない場合を除いて、1つの箱に入れることができない色がいくつかあります。
- 箱に入れることができるのは、各色のアイテム(色ごとに異なります)の最小数です。つまり、私は0個を置くことに決めることができます。ボックスまたは最低k個の色の。以上。最小数のボックスで梱包を行うことができなかった場合も、この制約を(可能な限り数回)破ることができます。
- できるだけ少ない色をボックスに分割する解決策を見つけたいと思います。
これは一種のパッキング問題だと思いますが、どれかわかりません。
上記をどのパッキング問題に変換できるか、および/またはこの問題を解決するために使用できるアルゴリズムを提案してください。
algorithm - n個の可変高さの画像を3つの(同じ長さの)列レイアウトに適合させる
piccsy.comに似た3列のレイアウトを作成したいと思っています。同じ幅で高さが異なる画像が多数ある場合、列の長さの違いが最小になるように画像を並べ替えるアルゴリズムは何ですか?理想的にはPythonまたはJavaScriptで...
よろしくお願いします!
マーティン
php - Amazon S3 から Javascript/CSS を自動的にパックしますか?
javascript と css ファイルを Amazon S3 に移動しています。S3 でホストする目的を損なうことなく、ファイルを自動的にパック/最小化する効率的な方法を誰か提案できますか?
Atm、私は私のjavascriptファイルを次のように呼び出しています:
php ファイルが myjavascript.js を見つけてパックし、パックされた js (myjavascript_min.js) を別のフォルダーに保存して、それを返します。myjavascript_min.js が存在しないか、myjavascript_min.js が最後に生成された後に myjavascript.js が変更された場合にのみパッキング プロセスを実行しますが、これはあまり効率的ではないようです。
どんな助けでも大歓迎です!
com - COMインターフェイスのC#実装で構造体パッキングを指定します
COMインターフェイスのC#実装で構造体パッキングサイズを指定することは可能ですか?
(構造体が管理側で定義されている場合の方法は知っていますが、私の質問は、構造体が非管理側で定義され、管理側で実装されている場合についてです。)
構造体型を定義するCOM型ライブラリと、それらの構造体の配列を返すインターフェイスメソッドがあります。このインターフェイスを実装するC#サーバーとアンマネージC ++サーバー、およびそれを使用するC++クライアントがあります。C++サーバーとC++クライアントはどちらも、構造体を32ビットビルドでは4バイトに、64ビットビルドでは8バイトにパックします。
ただし、C#サーバーは、プラットフォーム(x86、x64、AnyCPU)に関係なく、常に4バイトにパックされます。これは正常ですか?オーバーライドできますか?
構造体は次のようになります。
Visual Studio C ++およびMIDLコンパイラは、/Zp8のデフォルトのパッキングを使用します。32ビットビルドでは、構造体の両方のメンバーは4バイト幅であるため、パディングされません。64ビットビルドでは、文字列ポインタは8バイトで列挙型は4であるため、列挙型はパディングされます。当然、これにより、C#クライアントがパディングされていないデータを送信するときに問題が発生します。
/ Zp4を指定してパディングを削除することで問題を修正(回避)できますが、すべて正常に機能しているようです。しかし、それが最善の解決策かどうか疑問に思います。
パフォーマンス上の理由から、デフォルトのパッキングは/Zp8だと思います。私が理解しているように、x64のデフォルトでは、ハードウェアはアライメント例外をトラップして処理するため、少なくともクラッシュすることはありません。そして、この特定の状況では、インターフェイス関数はシステムの起動時にのみ呼び出されるため、パフォーマンスの低下は気にしません。そして、私が気にかけていたとしても、COM/.NET相互運用のコストとしてそれを受け入れるかもしれません。しかし、私はそれが間違っていると感じるので少し不安です(C ++のバックグラウンドから来ていると思います)。
逆に、管理側のパッキングを変更することが単純に不可能な場合は、私はそれを使用します。
誰かアドバイスをいただけますか?
java - ビット演算子を使用して複数の値を 1 つの int にパックする
低レベルのビット操作は、私の得意分野ではありません。次のビット単位演算子の使用例を理解する上で、いくつかの助けをいただければ幸いです。考慮してください...
このコードが何をどのように達成しているのかわかりません。マジック ナンバー 0x7F を使用する理由 梱包と開梱はどのように行われますか?
c++ - Cでのパッキングによるオーバーヘッドのカウント(gcc / g ++)
パッキングによるオブジェクトファイルのオーバーヘッドをカウント/合計したい(そして、理想的には、gccに最小化させたい)。
たとえば、次の構造(32ビットx86、gcc)について考えてみます。
実際のデータは6バイトしか使用しませんが、両方の文字の後に3つのパディングバイトが続くため、構造体はメモリ内で12バイトを使用します。次のように構造を並べ替えることによって:
構造体のsizeof(struct b)== 8のみになります(まだ4バイトのオーバーヘッド)。
(1)理想的には、gccを再配置struct a
しstruct b
てスペースを節約したいのですが、私のバージョン(4.2)は、どの最適化レベルでもこれを実行していないようです。
(2)または、与えられた場合、数(オーバーヘッドの合計量)または(メンバーが「理想的に」注文されている場合はオーバーヘッドの最小量)のstruct a
いずれかを(自動的に)取得したいと思います。これの目的は、構造を手動で並べ替える価値があるかどうかを判断することです(おそらくそうではありません)。6
4
gccが(1)を実行する方法はありますか?また、(2)を実行するツールはありますか?(1)について私が考えることができる最も近いことは#pragma pack(1)
ですが、(私が推測しているように)ほとんど/すべてのメモリアクセスを非整列にすることにより、パフォーマンスに深刻な影響を及ぼします。(2)の場合、デバッグシンボルを解析するPerlスクリプトでこれを実行できる可能性があると思いますが、DWARFに精通していないため確実に知ることができません。
c++ - ビットマップのパッキング
フォントグリフ画像を単一のテクスチャにパックしようとしています。ビットマップは1ピクセルあたり1バイトの単色であり、すべてを1つのテクスチャにまとめたいと思います。必要な最小テクスチャサイズを計算することはできますが、それらをすべてまとめるアルゴリズムを管理することはできません。
現在、ビットマップをcharポインターとして保存しており、それぞれのサイズを取得できます。
c++ - C++ が構造をよりタイトにしないのはなぜですか?
たとえば、私はclass
、
私のテストプログラムによると、a
tod
は次のように次々と構築されます
-
未使用という意味です。
なぜC++はそれをよりタイトにしないのですか?
algorithm - 任意の境界内に任意のポリゴンをパックする
誰かが私の特定のポリゴンパッキング問題に適合する最良のアルゴリズム/ヒューリスティックを教えてくれるかどうか疑問に思いました。境界として単一のポリゴン(凸面または凹面にも穴が含まれる場合があります)と単一の「塗りつぶし」ポリゴン(凸面または凹面の場合もあり、穴が含まれない)が与えられ、指定された数で境界ポリゴンを塗りつぶす必要があります塗りつぶしポリゴンの。(私は2Dで作業しています)。
私が見つけたポリゴンパッキングヒューリスティックの多くは、境界および/または塗りつぶしポリゴンが長方形であり、塗りつぶしポリゴンのサイズが異なることを前提としています。私の場合、塗りつぶしポリゴンは長方形ではないかもしれませんが、すべてがまったく同じになります。
多分これは特定のタイプのパッキング問題ですか?誰かがこのタイプのポリゴンパッキングの定義を持っているなら、私は喜んでグーグルで離れますが、これまでのところ、非常に役立つのに十分似ているものは見つかりませんでした。
ありがとう。