电影《Ex Machina》背后的算法

人工智能并不是码农的专利,哲学家和艺术家做了更深层次的思考,电影《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”, 这本书讲的是意识、知觉的话题,也是和电影主题相关的。

Cognition and Consciousness in the Space of Possible Minds

这段代码使用了一个算法:埃拉托色尼筛选法(the Sieve of Eratosthenes)简称埃氏筛法,是由古希腊数学家埃拉托色尼(Eratosthenes 274B.C.~194B.C.)提出的一种筛选法。 是针对自然数列中的自然数而实施的,用于求一定范围内的质数,它的容斥原理之完备性条件是p=H~

埃拉托色尼筛选法 步骤如下:

  1. 先把1删除(现今数学界1既不是质数也不是合数)
  2. 读取队列中当前最小的数2,然后把2的倍数删去
  3. 读取队列中当前最小的数3,然后把3的倍数删去
  4. 读取队列中当前最小的数5,然后把5的倍数删去
  5. 读取队列中当前最小的数7,然后把7的倍数删去
  6. 如上所述直到需求的范围内所有的数均删除或读取

工作原理如下图所示:

the Sieve of Eratosthenes

还有有好事之徒,把这段脚本写成了在线应用,感兴趣的同学可以修改并运行一下,去这里 :https://code.sololearn.com/c1Tfjv33PpIb/#py

你可能感兴趣的:(电影《Ex Machina》背后的算法)