gpt4 book ai didi

python - 输入 2 个整数并得到二进制、brgc 和汉明距离

转载 作者:行者123 更新时间:2023-11-28 21:12:56 26 4
gpt4 key购买 nike

除了汉明距离,我什么都有。我不断收到错误消息“int() 无法转换具有显式基数的非字符串”

这是我的代码:

def int2bin(n):                                
if n:
bits = []
while n:
n,remainder = divmod(n, 2)
bits.insert(0, remainder)
return bits
else: return [0]

def bin2gray(bits):
return bits[:1] + [i ^ ishift for i, ishift in zip(bits[:-1], bits[1:])]

def hamming(a,b):
assert len(a) == len(b)
count,z = 0,int(a,2)^int(b,2)
while z:
count += 1
z &= z-1
return count

def main():
a = int(input("Positive integer 1: "))
b = int(input("Positive integer 2: "))
print('int:%2i binary:%12r BRGC:%12r' %
( a,
int2bin(a),
bin2gray(int2bin(a))
))
print('int:%2i binary:%12r BRGC:%12r' %
( b,
int2bin(b),
bin2gray(int2bin(b))
))
print('hamming|%2 %12r &12r' %
(hamming(int2bin(a),int2bin(b)),
hamming(bin2gray(int2bin(a)),bin2gray(int2bin(b)))
))

main()

输出应该是这样的

int: 5 binary: [1, 0, 1] brgc: [1, 1, 1]    
int: 6 binary: [1, 1, 0] brgc: [1, 0, 1]
hamming 2 1

请帮忙!

最佳答案

试试这个实现(ab 应该是整数):

def hamming(a, b):
return bin(a^b).count('1')

在这里,我对 ab 进行异或,并得到二进制文件,其中 1 代表 ab 之间的差异。比我只数数。

关于python - 输入 2 个整数并得到二进制、brgc 和汉明距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33663676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com