"BitVector" (データ構造)
"BitVector"
ビット配列から構築した集合のブール値あるいはブールメンバのベクトルを表す.
詳細
- "BitVector"は,ブールデータ等の2つの値だけを取ることができる,非常にコンパクトなデータ表現であり,集合を効率的に表すこともできる.
- ビットの番号はBitSet等,他のビット演算と一致しているので,0は最初のビットを指す.
-
CreateDataStructure[ "BitVector",length] 指定された length の新しい"BitVector"を作成する CreateDataStructure["BitVector",blist] TrueとFalseの要素を含むブールリスト blist から新しい"BitVector"を作成する Typed[x,"BitVector"] x に"BitVector"の型を与える - "BitVector"型のデータ構造には,以下の演算が使える.
-
ds["BitAnd",dsi] ビット単位のAndを使って,ds と dsi のビットを組み合せる time: O(n/8) ds["BitClear",k] ds の k 番目のビットを0に設定する time: O(1) ds["BitClearAll"] ds のすべてのビットを0に設定する time: O(n) ds["BitCount"] ds 内の1に設定されたビットの数を返す time: O(n) ds["BitGet",k] ds の k 番目のビットを得る time: O(1) ds["BitInvert",k] ds の k 番目の値を反転させる time: O(1) ds["BitList"] ds 内の1に設定されたビットのリストを返す time: O(n) ds["BitNand",dsi] ビット単位のNandを使って,ds と dsi のビットを組み合せる time: O(n/8) ds["BitNor",dsi] ビット単位のNorを使って,ds と dsi のビットを組み合せる time: O(n/8) ds["BitNot",dsi] ds のビットを切り換える time: O(n/8) ds["BitOr",dsi] ビット単位のOrを使って,ds と dsi のビットを組み合せる time: O(n/8) ds["BitSet",k] ds の k 番目のビットを1に設定する time: O(1) ds["BitTest",k] ds の k 番目のビットが1に設定されている場合にはTrue,それ以外の場合にはFalseを返す time: O(1) ds["BitXnor",dsi] ビット単位のXnorを使って,ds と dsi のビットを組み合せる time: O(n/8) ds["BitXor",dsi] ビット単位のXorを使って,ds と dsi のビットを組み合せる time: O(n/8) ds["Boole"] ds の設定されたビットには1の数値配列を返し,それ以外には0の数値配列を返す time: O(n) ds["Capacity"] ds に保存できるビット数を返す time: O(1) ds["Copy"] ds のコピーを返す time: O(n) ds["Length"] ds に保存できるビット数を返す time: O(1) ds["OffBitList"] ds の範囲内にないビットのリストを返す time: O(n/8) ds["OffBitList",dsi] ds と dsi の両方で範囲内にないビットのリストを返す time: O(n/8) ds["OnBitList",dsi] ds と dsi の両方で範囲内にあるビットのリストを返す time: O(n/8) ds["Visualization"] ds の可視化を返す time: O(n) - 以下の関数もサポートする.
-
dsi===dsj dsi が dsj に等しい場合はTrue FullForm[ds] ds の完全形 Information[ds] ds についての情報 InputForm[ds] ds の入力形 Normal[ds] ds を通常の式に変換する
例題
すべて開くすべて閉じる例 (3)
新しい"BitVector"は,CreateDataStructureを使って作成できる:
スコープ (1)
情報 (1)
新しい"BitVector"は,CreateDataStructureを使って作成することができる: