从 Python 生成的列表中找出特定元素的 XOR 值的程序
假设我们有一个包含自然数的列表。现在从该列表中,我们删除其二进制表示中包含两个连续1的所有数字,并生成另一个名为Z的列表。现在我们得到另一个包含一些整数值的列表“input_list”。我们必须从Z中找出其索引在input_list中指定的指定元素的XOR值。
因此,如果输入类似于input_list=[3,4,5],那么输出将为9。
在Z的索引3、4和5中;值为4、5和8。因此,4XOR5XOR8=9。
示例
让我们看看以下实现以获得更好的理解-
def zeck_num(k, f_list):
res = 0
for i in range(len(f_list)-1,-1,-1):
if k >= f_list[i]:
res += 2**i
k -= f_list[i]
return res
def solve(input_list):
MOD = 10**9+7
max_val = 10**18
f_list = [1,2]
while f_list[-1] <= max_val:
f_list.append(f_list[-1] + f_list[-2])
res = 0
for index in input_list:
res ^= zeck_num(index, f_list)
return res % MOD
print(solve([3, 4, 5]))输入
[3, 4, 5]输出结果
9