如何用偏移量计算XOR?
我想用不同的偏移量进行XOR计算来计算列表。如何用偏移量计算XOR?
例子:
key = [0, 1, 0] text = ["0", "1", "0", "1", "0", "1", "0", "1", "1", "1"]
的XOR运算:
key[0]^text[0] ; key[1]^text[1] ;
key[2]^text[2] ;
key[0]^text[3] ;
key[1]^text[4] ;
key[2]^text[5] ;
key[0]^text[6] ;
key[1]^text[7] ;
key[2]^text[8] ;
key[0]^text[9] ;
如何做到这一点?
回答:
您可以使用Array#cycle
方法 “循环” 的关键不亚于需要:
text.zip(key.cycle).map{|t,k| t.to_i^k} # => [0, 0, 0, 1, 1, 1, 0, 0, 1, 1]
回答:
Ruby 1.9的有.cycle:
key = [0, 1, 0] text = ["0", "1", "0", "1", "0", "1", "0", "1", "1", "1"]
key_looper = key.cycle
p text.map{|el|key_looper.next^el.to_i} #=> [0, 0, 0, 1, 1, 1, 0, 0, 1, 1]
以上是 如何用偏移量计算XOR? 的全部内容, 来源链接: utcz.com/qa/265595.html