人工智能并不是码农的专利,哲学家和艺术家做了更深层次的思考,电影《Ex Machina》-“机械姬”,通过“图灵测试” 讲述了未来机器人的伦理难题:
AI Would be the biggest event in human history.
Unfortunately, it might also be the last.
— Elon Musk
这也是西方社会值得我们尊敬的地方,他们总有一些人,整天什么事也不做,就是喝着咖啡拼命地思考、思考、接着思考……
实干家喜欢“摸着石头过河”,相信“车到山前必有路”,而另一些人习惯先思考,再行动,在充分享受科技带来的便利的同时,提前预见到未来人类即将面临的困境。
好莱坞的电影往往情节很荒诞不经,但细节却无比真实。这一点和我们国内的影片正好相反。这部电影充满了高智商的烧脑细节,详情请看《机械姬》的17个经典暗喻;但我今天想谈的是和图书相关的电影场景:
男主角纳森在千钧一发生死攸关的时刻,hack boss电脑写了这段python代码
#!/bin/python
#
# Credit: "Ex Machina" film team
# See: https://i.imgur.com/C44iJeR.jpg
# -------------------------------
#BlueBook code decryption
import sys
def sieve(n):
# Compute primes using sieve of Eratosthemes
x = [1] * n
x[1] = 0
for i in range(2,n/2):
j = 2 * i
while j < n:
x[j]=0
j = j+i
return x
def prime(n,x):
# Find nth prime
i = 1
j = 1
while j <= n:
if x[i] == 1:
j = j + 1
i = i + 1
return i - 1
# Compute BlueBook unlock code
x=sieve(10000)
code = [1206,301,384,5]
key =[1,1,2,2,]
sys.stdout.write("".join(chr(i) for i in [73,83,66,78,32,61,32]))
for i in range (0,4):
sys.stdout.write(str(prime(code[i],x)-key[i]))
print
这是一段可执行的脚本,我们可以运行了一下,输出结果是:
ISBN = 9780199226559
这是一本图书的ISBN号,可以查到是牛津大学出版社出版的“Embodiment and the Inner Life”, 这本书讲的是意识、知觉的话题,也是和电影主题相关的。
这段代码使用了一个算法:埃拉托色尼筛选法(the Sieve of Eratosthenes)简称埃氏筛法,是由古希腊数学家埃拉托色尼(Eratosthenes 274B.C.~194B.C.)提出的一种筛选法。 是针对自然数列中的自然数而实施的,用于求一定范围内的质数,它的容斥原理之完备性条件是p=H~
。
埃拉托色尼筛选法 步骤如下:
- 先把1删除(现今数学界1既不是质数也不是合数)
- 读取队列中当前最小的数2,然后把2的倍数删去
- 读取队列中当前最小的数3,然后把3的倍数删去
- 读取队列中当前最小的数5,然后把5的倍数删去
- 读取队列中当前最小的数7,然后把7的倍数删去
- 如上所述直到需求的范围内所有的数均删除或读取
工作原理如下图所示:
还有有好事之徒,把这段脚本写成了在线应用,感兴趣的同学可以修改并运行一下,去这里 :https://code.sololearn.com/c1Tfjv33PpIb/#py