ビット配列の作成
長さのビット配列(ビット列)とは例えば、のとき、
といったように、要素数が個になるような0と1の組合せ全てにわたる集合である。(離散数学の分野では、に含まれるベクトル、ということになる。この集合の名前を何と言ったっけか…。ちなみにである。)
MathematicaにはTuplesという組み込み関数が存在する。
Tuples[list,n]
list 中の n 個の要素からなるすべての可能な集合のリストを生成する.
これはべき集合を考えるときにも重要で、要素数の集合のべき集合を得るには、長さのビット列(の集合)を用意し、番目が1となっているような要素をもとの集合から選んでくれば、それはべき集合となる。
もっとも、Mathematicaにはべき集合を求める関数が存在しているが…。
ところで、C言語やJavaでべき集合を求めたいとなると、このビット列の考えが必要となる。ビット列を生成するには、0からまで順に2進数変換し、桁ごとに2次元配列に組み込んでいけばよい。