【发布时间】:2019-08-28 11:00:58
【问题描述】:
我遇到了这个问题。我有这个称为“争夺”的功能。 它有两个参数,S 和 B。B 是一个二进制字符串(“101010”)。 我知道它可以逆转,因为它以前做过。 我正在尝试将此字符串转换为未加密的版本
"1100001110000111000011000010100001110000111000010100001110000010000110010001011001110000101010001011000001000"
S 为 9。
这是我的第一次尝试。我尝试了多种变体,但它不起作用,因为模数(产生余数)的反面是除法(产生商)
我有 S。我只是需要一种将 R 变成 B 的方法。
def unscramble(r, s):
b = ""
x = s
while x < len(r) + s:
b += r[x / len(r)]
x += 1
return b
问题是,它创建了一个带小数点的浮点数,在切片中不起作用。
def scramble(b, s):
r = ""
x = s
while x < len(b) + s:
r += b[x % len(b)]
x += 1
return r
【问题讨论】:
-
你的'scramble'函数不只是循环左移你的字符串
s吗?例如,尝试运行scramble('abcde', 2),看看你会得到什么。有了这些知识,扭转局面应该很简单。 -
@NiayeshIsky 这听起来很愚蠢,但我该怎么做呢?我试过了,结果又是一次循环左移。
标签: python algorithm math binary