如何翻转素数索引的 1 和 0 位
How to flip the bit of 1 and 0 for prime indexes
我有一个二进制数列表,仅对于素数索引,位需要从 0 翻转到 1 或从 1 翻转到 0。二进制数列表实际上接近 100 位长度。我有一个 8 位长的代码,但它没有显示预期的输出:
def prime_index (input):
p = list(input)
s = ""
# Loop to check if
# index prime or not
for i in range (2, len(p) + 1):
if isPrime(i):
s = s + input[i-1]
flip = {'0': '1', '1':'0'}
flip=(flip[input[i]])
print (flip)
print (s)
input="11111111"
prime_index(input)
我得到这样的输出:
0
0
0
0
1111
结果应该是这样的,其中 [2, 3, 5, 7] 的索引位翻转:
output:11001010
希望有人能帮助我。谢谢。
那是因为你在翻转输入之前正在做 s = s + input[i-1]
并且当索引不是质数时你没有附加 s
。试试这个。
def prime_index (input):
p = list(input)
s = ""
# Loop to check if
# index prime or not
for i in range (0, len(p) - 1):
if isPrime(i):
flip = {'0': '1', '1':'0'}
flip=(flip[input[i]])
print (flip)
s = s + flip
else:
s = s + input[i]
print (s)
input="11111111"
prime_index(input)
我有一个二进制数列表,仅对于素数索引,位需要从 0 翻转到 1 或从 1 翻转到 0。二进制数列表实际上接近 100 位长度。我有一个 8 位长的代码,但它没有显示预期的输出:
def prime_index (input):
p = list(input)
s = ""
# Loop to check if
# index prime or not
for i in range (2, len(p) + 1):
if isPrime(i):
s = s + input[i-1]
flip = {'0': '1', '1':'0'}
flip=(flip[input[i]])
print (flip)
print (s)
input="11111111"
prime_index(input)
我得到这样的输出:
0
0
0
0
1111
结果应该是这样的,其中 [2, 3, 5, 7] 的索引位翻转:
output:11001010
希望有人能帮助我。谢谢。
那是因为你在翻转输入之前正在做 s = s + input[i-1]
并且当索引不是质数时你没有附加 s
。试试这个。
def prime_index (input):
p = list(input)
s = ""
# Loop to check if
# index prime or not
for i in range (0, len(p) - 1):
if isPrime(i):
flip = {'0': '1', '1':'0'}
flip=(flip[input[i]])
print (flip)
s = s + flip
else:
s = s + input[i]
print (s)
input="11111111"
prime_index(input)