我一直在python中编写一个简单的程序,使用Gödel的编码将字符串编码为数字.这是一个快速概述:你取字符串的第一个字母,找到它在字母表中的位置(a - > 1,b - > 2,...,z - > 26)并将第一个素数(2)提高到这种力量.你取字符串中的第二个字母和第二个素数(3),依此类推.这是代码:
import string, math
alphabet = list(string.ascii_lowercase)
def primes(n):
"Returns a list of primes up to n."
primes = [2, 3]
i = 5
while i < n:
l = math.ceil(math.sqrt(i))
k = math.ceil(math.sqrt(i+2))
for p in primes[:l]:
if i % p == 0:
break
else:
primes.append(i)
for p in primes[:k]:
if (i+2) % p == 0:
break
else:
primes.append(i+2)
i += 6
return primes
def Encode(string):
"Encodes a …
Run Code Online (Sandbox Code Playgroud)