|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
请问,如何才能够实现{-1,0,1} --- > {q0,q0+q1,q0+q1+q2} ---> {-1,-1,0} ,可以用accumulate吗? 请码一下,谢谢
def code_derived_set(encoded_set):
running_sums = []
running_sum = 0
encoded_set = bin(encoded_set)[2 :][: : -1]
for i in range(len(encoded_set) // 2 * 2 - 1, -1, -2):
if encoded_set[i] == '1':
running_sum += -(i + 1) // 2
running_sums.append(running_sum)
for i in range(0, len(encoded_set), 2):
if encoded_set[i] == '1':
running_sum += i // 2
running_sums.append(running_sum)
encoded_running_sum = 0
for value in running_sums:
if value < 0:
encoded_running_sum |= 1 << (-value * 2 - 1)
else:
encoded_running_sum |= 1 << (value * 2)
return encoded_running_sum |
|