パズル万華鏡

面白いパズルの紹介と解説をします。

ビット列上の部分集合問題(3)の解

 ビット列上の部分集合問題(3)の解答例を示します。

 

問題(3)の解

 16通りの解が見つかる。

[1] 00001001101011110
[2] 00001001111010110
[3] 00001010011011110
[4] 00001010011110110
[5] 00001011001111010
[6] 00001011010011110
[7] 00001011110011010
[8] 00001011110100110
[9] 00001100101111010
[10] 00001101001011110
[11] 00001101011110010
[12] 00001101111001010
[13] 00001111001011010
[14] 00001111010010110
[15] 00001111010110010
[16] 00001111011001010

 

f:id:isemba:20180328084941j:plain

ビット列上の部分集合問題(2)の解

 ビット列上の部分集合問題(2)の解答例を示します。

 

問題(2)の解

 2通りの解が見つかる。

[1] 0001011100
[2] 0001110100

[1] 0001011100 において、

   000, 001, 010, 101, 011, 111, 110, 100 がすべての部分集合を表す。

[2] 0001110100 において、

000, 001, 011, 111, 110, 101, 010, 100 がすべての部分集合を表す。

 樹形図で考察する。

f:id:isemba:20180328084628p:plain

f:id:isemba:20180328084639j:plain

ビット列上の部分集合問題(2)

 ビット列上の部分集合問題(2)を紹介します。

 

問題(2)

 記号0,1からなる長さ10の記号列a(1)a(2)…a(10)において、先頭から3個ずつ取り出して見ると、すべての部分集合を表しているものを見つけよ。

f:id:isemba:20180328084501j:plain

ビット列上の部分集合問題(1)

 ビット列上の部分集合問題(1)を紹介します。

 

問題(1)

 記号0,1からなる長さ5の記号列a(1)a(2)…a(5)において、先頭から2個ずつ取り出して見ると、すべての部分集合を表しているものを見つけよ。

f:id:isemba:20180328084026j:plain

ワインの移し替え問題(5)の解

 ワインの移し替え問題(5)の解答例を示します。

 

問題(5)の解

 ビンの番号iのワインの量をW(i)で表す。

手順(1)
  満杯(n㍑)のビンの番号を探し、その番号をpとする。

手順(2)
  ・p=nの場合
   ビンの番号と入っているワインの量が一致しないビンを見つける。
   見つからないとき、移し替えが終了していることになる。

   見つかったとき、ワインを移し替える。
   そのビンの番号をq、ワインの量をW(q)㍑とする。
   番号qのワインが満杯になるまで、番号p(=n)から移し替える。
   番号qのビンがn㍑、番号p(=n)のビンがW(q)㍑となる。

  ・p=r(≠n)の場合
   r㍑入っているビンを探す。そのビンの番号をsとする。
   番号sのワインが満杯になるまで、番号rから移し替える。
   番号rのビンがr㍑、番号sのビンがn㍑となる。

手順(3)
  手順(1)に戻る。

 

f:id:isemba:20180319100303j:plain