質問

のシナリオ 私に割り当てられた値がこのような

Amazon-1

ウォルマート-2

対象-4

コストコ-8

Bjs-16

DBデータが格納されるマスキングこれらの価値観に基づく可能。例:

マスク製品の説明

1ノートpc用アマゾン

17iPhone用アマゾン 抗

24マットレスをご用意 コストコは、BJの

このようなすべての製品はマスク、保存されました。

いすべてを取得、小売店のマスク値., 例: のためのマットレスのマスク値は24です。それでは、どうすればいを見たいのはリストのコストコ&BJのプログラム.アルゴリズム/ロジックが期待されています。

役に立ちましたか?

解決

int mattress = 24;
int mask = 1;
for(int i = 0; i < num_stores; ++i) {
    if(mask & mattress != 0) {
        System.out.println("Store "+i+" has mattresses!");
    }
    mask = mask << 1;
}

ビットアップif文線、マットレス値は、マスクセット、そのマスクでマットレスを販売し、次いでストアと同じビットを有する場合。店はマットレスを販売していたときにアンのマットレス値とマスク値はゼロ以外になります。各反復のために、我々は、マスクは左に一つの位置をビット移動します。

必要性が負の1で乗算することができますことがあればマスク値は、正、負ではないでなければならないことに注意してください。

他のヒント

あなたがSQLデータベースに意味と仮定すると、あなたの検索SQLで、あなたは一般的に追加することができ、例えばWHERE(のMyFieldおよび16)= 16、WHERE(のMyField 24)= 24など

しかし、あなたは、このような回収のを最適化しようとしている、と一般的にクエリに一致する行の数が行の合計数よりもはるかに小さい場合というノートでは、これはおそらく、このデータを表現するための非常に良い方法ではありません。その場合には、この情報を表す(商品コード、StoreID)ペアを含む別個の「ProductStore」テーブルを持っている方が良いであろう(およびStoreIDに索引付けされる)。

がどの小売店がたな卸資産額の"仮面"の値をそれぞれの場合?その場合をまとめてチェックすべてのペアを取得し、n2ます。さん、入れ子ループを実行します。

ている場合には、合意の数の小売業者のたな卸資産しようとしているとの サブセットの額 の課題であり、残念なことができませんのでよりも2^nます。

ることができれば拡大のためにオリジナルのデータ構造情報のルックアップの小売店への貢献、そのことが望ましいと思う。っていうのかんばんへのアクセスデータ構造では、生成すべてのサブセットの小売業者のためのチェックしていく見 Knuthのアルゴリズム [pdf]生すべてのk-結合し1...k) TAOCP 巻4a Sec7.2.1.3.

http://www.antiifcampaign.com/する

これを覚えておいてください。あなたは別の構築物(マップ/戦略パターン)で、私にとってあなたは「場合」は本当に危険であるそうでないことを、そこにそれをさせることができます!!「場合」を削除することができた場合(F.Cirillo)

この場合、あなたはビットマスク操作でマップのマップを使用することができます。

ルカます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top