algorithm - Can somebody explain the following xor property -


i forum mentioned given array of n numbers:

arr[0........n-1] 

the following conditon holds, ^ xor operator `

f(l,r) = f(0,r) ^ f(0,l-1) 

where f(l,r) = arr[l]^arr[l+1]^........arr[r]

i checked above taking number of arrays , different values of l , r , yes, true. don't understand how?

can please explain logic behind this?

use simplest property of xor

f(0,r) ^ f(0,l-1) = f(l,r) => (f(0,r) ^ f(0,l-1)) ^ f(0,l-1) =  f(0,l-1) ^ f(l,r) => f(0,r) = f(l,r) ^ f(0,l-1) [since xor associative f(0,l-1) ^ f(0,l-1) = 0 , x ^ 0 = x]   => f(0,r) = (arr[0]^...arr[l-1])^(arr[l]^...^arr[r]) 

which definition of f(0,r).


Comments