Algorithm 在围棋中吃一片

Algorithm 在围棋中吃一片,algorithm,go,Algorithm,Go,所以我试着对随机数进行异或运算,即4个字节,每4个字节进行一次运算。问题是,我想将random更改为ans(这是xor的结果),然后继续。因此,基本上,第一次随机变量是一个固定的数字,但在循环结束之前会发生变化。我的代码似乎有正确的逻辑,但是,我不断得到 (未在切片上定义运算符^ random:=4字节 对于j:=0;应用程序应该对单个字节进行异或运算。大概是这样的: var random [4]byte for i, b := range something { random[i&am

所以我试着对随机数进行异或运算,即4个字节,每4个字节进行一次运算。问题是,我想将random更改为ans(这是xor的结果),然后继续。因此,基本上,第一次随机变量是一个固定的数字,但在循环结束之前会发生变化。我的代码似乎有正确的逻辑,但是,我不断得到 (未在切片上定义运算符^

random:=4字节

对于j:=0;应用程序应该对单个字节进行异或运算。大概是这样的:

var random [4]byte
for i, b := range something {
    random[i&3] ^= b  // xor b on element of random
}
这套

random[0] = random[0] ^ something[0] ^ something[4] ....
random[1] = random[1] ^ something[1] ^ something[5] ...
... and so on

请参阅
crypto/cipher/xor.go
xor字节实现并设计您的字节。@jeevatkm示例中的变量“a”似乎不是“byte”或slice,这使它与我的不同。除非我在上面的源代码参考链接中遗漏了什么
dst
a
b
是一个字节片。
random[0] = random[0] ^ something[0] ^ something[4] ....
random[1] = random[1] ^ something[1] ^ something[5] ...
... and so on