No Caffeine, No Life

プログラミング(主にPython)

数学パズル Q21 排他的論理和で作る三角形: ビット演算の練習

ビット演算になれるための練習。

各行を配列で表現した場合の解答例:

各行は、

  • k行目を1ビット左にシフトしたものをk+1行目とする
  • k行目とk+1行目をXORしたものが正しいk+1行目となる

ことに注目する。例を挙げると、

  • 6段目:110011
  • これを1ビット左にシフト:1100110
  • 6段目との排他的論理和をとる:1010101 (これが7段目になる)

この点に注目すると、こんな解答例が書ける:

広告を非表示にする