Хороший пример «пасхалки» для программистов в фильме Ex Machina

в 20:44, , рубрики: Ex-Machina, пасхальное яйцо, Программирование, программисты, метки:
Комментарии к записи Хороший пример «пасхалки» для программистов в фильме Ex Machina отключены

image
Кадр из фильма Ex Machina

В британском фантастическом фильме 2015 года Ex Machina (в русской локализации "Из машины") главная героиня — это человекоподобный робот с явными женскими половыми признаками по имени Ава. Её создатель — эксцентричный миллиардер-программист, которого зовут Натан, организовал всё так, что в его отдалённую от людских глаз лабораторию прилетает Калеб, молодой разработчик из компании Натана. В ходе разговора между людьми выясняется, что Калеб должен провести с Авой тест Тьюринга — другими словами, выяснить обладает ли она интеллектом.

Как это бывает во многих фильмах, герои которых каким-то образом связаны с программированием (обычно это некие хакеры), на экране компьютера режиссёр часто демонстрирует строки программного кода, создавая своеобразную атмосферу загадочности и невероятной сложности. Тоже самое произошло и в фильме Ex Machina: в одном из эпизодов на компьютере Натана можно заметить какую-то программу, выведенную в консоли:

image
Скриншот фильма Ex Machina

Выяснить, что за программа на переднем плане (на фоне какой-то С-код), не поленился пользователь reddit с ником Infintie_3ntropy. При ближайшем рассмотрении стало очевидно, что это программа на языке Python, которая печатает некую последовательность символов:

#BlueBook code decryption
import sys
def sieve(n):
    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):
    i = 1
    j = 1
    while j <= n:
            if x[i] == 1:
                    j = j + 1
            i = i + 1
    return i - 1
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 

Выполнив приведённый код в Python 2.7, в консоли мы получим следующую строку:

ISBN = 9780199226559

Если предположить, что ISBN это уникальный номер книжного издания (International Standard Book Number) и поискать по этому номеру книгу, то можно обнаружить, что её тематика искусственного интеллекта как нельзя лучше соответствует теме фильма: " Embodiment and the inner life: Cognition and Consciousness in the Space of Possible Minds".

Так что Ex Machina один из немногих фильмов, компьютерный антураж которых оказался наполнен смыслом. Познакомиться с тем, как топорно относится подавляющее большинство голливудских режиссёров к демонстрации программного кода в своих блокбастерах можно здесь.

Автор: jeston

Источник

Поделиться новостью