我不知道为什么这段代码没有给出正确的答案
我在Intel Core i3处理器上运行了这段代码
from array import array
with open("cipher.txt","r") as file:
main_list=file.read().split(",")
sub_list1=array("i",[])
sub_list2=array("i",[])
sub_list3=array("i",[])
for i in range(len(main_list)):
if i%3==0:
sub_list1.append(int(main_list[i]))
elif i%3==1:
sub_list2.append(int(main_list[i]))
else:
sub_list3.append(int(main_list[i]))
def is_valid(xor):
if 32 <= xor <= 90:
return True
elif 97 <= xor <= 122:
return True
return False
ASCIIs2=list(range(97,123))
_lists=[sub_list1,sub_list2,sub_list3]
codes=[]
while len(codes)!=len(main_list):
for _list in _lists:
for key in ASCIIs2:
codes_copy=[]
for value in _list:
n=int(value)^key
if is_valid(n) :
codes_copy.append(int(value)^key)
else:
break
else:
codes+=codes_copy
break
print(sum(codes))
根据答案,sub_list1应该由103解密,但这表示它必须由101解密
答案 0 :(得分:0)
我遇到了同样的问题,结果发现密码文件已更改,并且互联网上所有可用的答案都专门针对该文件的较旧版本。因为其中包含一些圣经文本,这使一些人感到不安。您可以在这里进一步阅读:project euler-problem059。