ブール関数
ブール演算・ビット毎演算を用いて、色々な効率化・高速化アルゴリズムがある。その例が以下に挙げられている 複数の情報、を詰め込む・へばらす 2012年11月10日を20121110と表すことを考える 年が2 年を構成する4つの数字を6桁左へシフトして 月を構成す…
2進数表記での算術演算にブール演算を使う 非負の整数xをk桁で二進数表記しよう to_bin.ry <- function(k, x){ if(k <= 0){ return(c()) } else { return(append(Recall(k-1, x%/%2), x%%2)) } } to_bin_rev.ry <- function(x){ sum(x*2^((length(x)-1):0))…
という演算はの値の取り方4通りのそれぞれに(0,1)のいずれかを対応付けることで網羅できるから、通りある 16種類の演算のそれぞれについて2x2テーブルを作ってみる boolean.op <- array(c(t(expand.grid(rep(list(0:1),4)))),c(2,2,16)) # The i-th operati…