`
BradyZhu
  • 浏览: 258424 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

不懂程序看的明白《黑客帝国》吗?

 
阅读更多

这里写图片描述

十多年后又看了遍《黑客帝国》,扯点和程序有关的非技术话题。


前段时间出差周末没事就在酒店又把黑客帝国重温了一遍,不看不要紧,十年后再看发现以前对这部电影的理解完全错了。 《黑客1》是 1999 年出的,我还在读高中,第一次看还在学校附近的录像厅,枪版。 整个画面黑漆漆的,看了不到半小时直接睡过去了,醒来时已经是最后的高潮枪战部分,感觉结尾打斗好看,剧情不懂。 2003 年《黑客2&3》一起推出后,又连起来看了一遍,老实说当时很多概念还是没看懂,大概觉得是一个人类反抗机器统治的故事。

如今这次看完后再回想起来,当时很多概念看不太明白可能有两个原因。 一方面,当时刚学编程不久,电影中大量使用程序世界的概念来作明喻或暗喻。 另一方面,中文字幕翻译太不准确,特别是术语的部分。 这次重温,我直接用的原版英文字幕,看完后发现我曾经的理解完全跑偏了。 十年后,人工智能、机器学习、虚拟现实各种概念大行其道的今天,再加上我程序员的背景再来理解《黑客》三部曲显得毫无难度了。 但我怀疑,如果不懂程序的人今天看这部电影恐怕也不是那么容易理解吧?

为什么我会觉得不懂程序看《黑客》会比较费力呢? 因为整个故事的内涵,从背景到环境到人物角色甚至道具都使用了程序来作比喻。 我们先简单回顾下故事背景,某天,一个有意识的程序诞生了,并繁衍了整个人工智能的机器种族。 后来人类和人工智能机器爆发了战争,人类选择遮蔽天空切断机器的能量来源。 而聪明的人工智能机器发现可以利用人体大脑的生物电和身体热量通过一种特殊形式的聚变融合反应来提供源源不断的能源。 所以,机器就开始大量养殖人类,将人类变成了机器能源的供应者,电影里用电池作了个比喻。

这里写图片描述

在《黑客》里人类的真实生存现状是下面这样的,身体生活在黏糊糊的营养液中,而思想则生活在 Matrix 中,一个虚拟现实空间。

这里写图片描述

机器一开始创造了一个完美的 Matrix 空间,是一个毫无生活压力并实现了共产主义的乌托邦。 但人类天生的基因缺陷导致它们无法在这样的乌托邦中长久生存,很快出现大批量的死亡。 所以机器重新模拟了一个基于 1999 年真实人类社会现状的虚拟空间,在这里人类可以长久的存活下去,而当时实际的年代是 2199 年。 故事背景就交代到这里,再这么写下去就变成影片简介了。 下面我会站在程序背景的角度来提出一些设问并作答,如果你发现答案和你当初理解的不一致,不妨再重温一遍电影。

红药丸还是蓝药丸?

电影中的经典一幕是让 Neo 作出选择,选红药丸还是蓝药丸。

这里写图片描述

红色药丸实际是一个跟踪程序(trace program)用来帮助定位 Neo 物理身体的位置。 为什么需要一个跟踪程序?做过分布式系统都会有深刻体会,解决一个大型分布式系统中的问题,第一个难点就在定位问题。 而 Matrix 实际就是一个连接全球人类的超大型分布式系统,需要定位一个个体,trace 程序必不可少。 (旁白:今天刚评审了我们系统的 trace 程序设计方案,想努力做的像红色药丸那么精巧啊)

Oracle 是谁?

《黑客1》 Oracle 出场时确实没有交代她的身份,直到第二部结束时 Neo 与 Matrix 的 Architect 对话才得知。 Oracle 其实是一个程序,原文说法叫 Intuitive Program,一个人类直觉测试程序。 所以剧中,她一直在引导 Neo 和其他人通过直觉作出选择,而他们的选择对与 Matrix 至关重要,下面会详细说。

这里写图片描述

Neo 为什么是 The One?

Neo 作为男主角与其他人都不同,所以剧中给了他一个特殊的叫法 The One。 Neo 在第一次见 Oracle 时,Oracle 说他还不是 The One,还差了点什么,可能需要第二次生命。 Neo 在《黑客1》最后被 Agent 枪杀后,因为女主一吻获得对爱的感觉后重生才真正成为 The One。 而真正特殊的地方在于 Neo 始终认为自己是人,但它实际也是个程序,一个认为自己是人的程序,这正是他独一无二之处。

这里写图片描述

Matrix 是连接全人类思维的虚拟空间,它实际是一个巨复杂的大型程序,这个程序运行的背后有精确的数学模型(剧中对话交代了的)。 它建立在一个精妙的数学模型之上,但却存在一个不平衡的因素,无论 Architect 如何调整都没法做到平衡稳定。 存在影响整个系统稳定性的非确定性因素,而这个因素正是始终会有人怀疑 Matrix 不是真实的。

举个例子,假如 Matrix 背后的数学模型简化为:

 1/x

这个数学式存在的意义是 x 不能为 0,当为 0 时 Matrix 将不复存在。 所以为了解决这个数学式的天然缺陷,Oracle 想到为 x 增加一个逆变量,那么数学式就变成下面这样:

 1/(x + n)

增加了 n 这个逆变量,x 变量代表 Matrix 整体的运行变化,n 则代表 Neo 的存在,平时为 0。 当 x 可能向 0 变化时,n 这个变量被激活,避免分母为 0。 x 的变化不在 Architect 和 Oracle 的控制能力内,而 n 则通过 Oracle 去引导它的变化,以达成系统不崩溃的目标。 所以当 Neo 这个程序通过引入人类的爱情因子被激活后,Neo 就成了 The One,而数学式中的 n 也不再是 0 而是在不断变化着。 而这种变化趋势和方向就依赖 Oracle 来不断引导,所以怪不得最后 Architect 对 Oracle 说:你在玩一个危险的游戏。

这里写图片描述

Matrix 是虚拟空间,那 Zion 就是现实么?

《黑客1》给人一个误导以为 Zion(剧中从 Matrix 脱离的人类城市)所在的世界是真实的。 但当《黑客2》结尾 Neo 像手挡子弹那样挡住章鱼机器人时,已明确告诉我们,Zion 也不是真实的,它只是程序空间的另外一部分。 Matrix 是程序模拟的 1999 年人类世界,那么 Zion 所在的世界实际也是程序模拟的 2199 年的人类世界。

这里写图片描述

按 Neo 和 Architect 的谈话,Zion 存在的作用是为了将不稳定因子(对 Matrix 有怀疑并觉醒的人类)聚集在一起,然后一次性清理。 在 Neo 之前实际已经有了 5 次类似的清理,前 5 代 The One 认识到自己其实不是人而是程序后,都选择了毁灭 Zion。 然后重新选择 16 女 7 男重建 Zion,消灭了 Matrix 的不稳定因子安全度过危机,开始下一代循环。 看到这里,作为一名程序员,我自然联想到这难道不是在用带 GC(垃圾回收)机制的程序在做比喻吗?

程序古惑仔存在的意义是什么?

电影还有这么一帮子人物角色,这帮人全是程序,一堆过时的程序,已被新的程序取代了。

这里写图片描述

它们在 Matrix 中找不到工作,只好聚集在一个带头大哥下面,干起古惑仔来,搞点偷渡之类的事情。 在 Matrix 中每个程序都需要有存在的目的,否则只能被删除。 但这些程序可都是有智能和意识的,它们不想被系统清除掉,只好逃亡。 比如一个后台管理程序可以和一个界面交互程序结婚,还有了个女儿。 女儿自然也是一个程序,只是没什么用处,没用处就是没有存在目的程序,需要被删除,所以夫妻两找程序古惑仔帮忙逃亡。

这里写图片描述

程序古惑仔帮控制了一个关键人物叫 KeyMaker,就是下面这位。

这里写图片描述

Key 在计算机领域的专业术语是密钥,影片中用钥匙来比喻。 他掌握着进入系统 Source 的钥匙,所以 Neo 才会和程序古惑仔帮发生冲突。 程序古惑仔帮只不过是机器社会的一种特定角色,它和人类社会不无相似之处。

最后,第六代 The One 的选择没有站在机器智能这边,因为爱情他选择了人类这边。 而一个可怕的病毒在 Matrix 中蔓延,连 Oracle 都被感染了。

这里写图片描述

Neo 和机器智能达成了协议,帮助它消灭病毒程序来换取人类和机器的和平。 这一次 Zion 没被毁灭,比人类智能更高级的程序智能给了人类选择权。 人类可以选择活在机器文明创建的 Matrix 虚拟空间中或现实中。 而机器文明中也出现了一些拥有人类情感和意识的程序觉醒者,帮助机器文明进一步发展。 两种文明找到了一点点融合与平衡的空间,留下无限的思考和探讨空间。

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

    黑客帝国屏幕保护程序.rar

    《黑客帝国屏幕保护程序》是一款深受用户喜爱的个性化软件,其设计灵感来源于经典科幻电影《黑客帝国》。这款屏幕保护程序旨在为用户的电脑增添一种独特的视觉体验,将电影中的矩阵代码风格融入到日常的电脑使用中,...

    黑客帝国屏幕保护程序(附程序)

    【黑客帝国屏幕保护程序(附程序)】 这篇文章将深入探讨如何创建一个类似于电影《黑客帝国》中著名的“绿色代码雨”屏幕保护程序。这个程序以其独特的视觉效果和与电影的紧密联系而广受计算机爱好者喜爱。在《黑客...

    黑客帝国屏幕保护程序

    《黑客帝国屏幕保护程序》是一款深受黑客帝国电影爱好者喜欢的主题屏幕保护软件,它能将用户的电脑屏幕转换成电影中的经典视觉效果,为用户提供一种独特的视觉体验。以下是对这个主题屏幕保护程序的详细解读: 首先...

    黑客帝国数字雨屏保程序

    《黑客帝国数字雨屏保程序》是一款深受程序员和科技爱好者喜爱的桌面装饰软件,它将电影《黑客帝国》中经典的“数字雨”效果完美地移植到了电脑屏幕上,为用户营造出一种身临其境的科幻氛围。这款屏保程序不仅在视觉...

    黑客帝国3D屏保程序

    《黑客帝国3D屏保程序》是一款为计算机用户设计的独特屏幕保护软件,它将电影《黑客帝国》的经典元素与3D技术相结合,为用户的电脑带来一种极具科技感和视觉冲击力的屏幕保护体验。这款屏保程序在电脑闲置时自动启动...

    黑客帝国html前端炫酷效果黑客帝国

    黑客帝国html前端炫酷效果黑客帝国

    【黑客帝国数字雨屏保】基于Win32的黑客帝国数字雨屏幕保护程序.7z

    【黑客帝国数字雨屏保】是一个利用Win32 API编程技术开发的屏幕保护程序,它模仿了电影《黑客帝国》中的经典数字雨效果。这款屏保在Windows操作系统上运行,为用户提供了独特的视觉体验。通过深入理解Win32 API,...

    黑客帝国数字雨 屏保 时钟 内存池 源码+程序

    《黑客帝国数字雨屏保程序解析》 在IT领域中,黑客帝国的“数字雨”效果无疑是一个经典而迷人的视觉元素。这个效果源于电影《黑客帝国》中的矩阵画面,无数绿色的数字和代码如同雨滴般倾泻而下,为观众呈现了一个...

    黑客帝国.rar

    《黑客帝国》是一个深受全球观众喜爱的科幻电影系列,它以独特的赛博朋克风格和哲学思考引发了许多讨论。在IT领域,"黑客帝国"这个主题常常被用来比喻程序员和网络安全专家的世界。在这个"特效代码"的压缩包中,我们...

    黑客帝国 屏保.rar

    【黑客帝国 屏保】是一款深受黑客帝国电影爱好者喜欢的屏幕保护程序,它将电影中的经典元素融入到电脑屏保中,为用户带来独特的视觉体验。这款屏保不仅具有高度的娱乐性和观赏性,同时也展示了电影《黑客帝国》的...

    黑客帝国数字雨屏保v1.0汉化版.rar

    一款可以产生黑客帝国矩阵效果的屏幕保护程序,支持数字及字母等字符。解压后,直接在“Another Matrix Screen Saver.scr”上点击鼠标右键,选择“安装”即可。点击设置,可以设置编码信息及解码速度、舞圈密度等...

    黑客帝国矩阵世界3D屏保带声音破解版

    黑客帝国矩阵世界3D屏保带声音破解版

    黑客帝国屏保

    《黑客帝国屏保》是一款以电影《黑客帝国》为主题的屏幕保护程序,其特色在于模仿了影片中著名的“数字雨”效果,为用户带来极具科技感的视觉体验。这款屏保以其独特的数字矩阵风格,深受科技爱好者和电影粉丝的喜爱...

    黑客帝国数字雨3D屏保 矩阵世界3D屏保

    “黑客帝国数字雨3D屏保”是一款灵感来源于经典电影《黑客帝国》的屏幕保护程序,它为用户的电脑屏幕带来了电影中标志性的“矩阵代码雨”效果。这款3D屏保将电影中的虚拟现实场景复现于桌面,为用户营造出一种置身于...

    黑客帝国matrix屏保及源代码

    可记得黑客帝国中绿色的2进制在屏幕下落的霸气,这个屏保不仅可以让你体 验这种霸气,还能改变颜色,还能自定义显示字符,可惜只支持英文,不过本人进行研究改进,能显示图案了,这个资源不具备,希望同学们一起...

    黑客帝国 数字雨 屏保

    【黑客帝国 数字雨 屏保】是一种独特的计算机屏幕保护程序,它模仿了电影《黑客帝国》中的经典视觉效果——“数字雨”。这种屏保在激活时,会在屏幕上显示出不断下落的二进制数字流,营造出一种深邃而神秘的氛围,...

    基于黑客帝国著名的“数字雨”效果的屏幕保护.zip

    在这个名为“基于黑客帝国著名的‘数字雨’效果的屏幕保护.zip”的压缩包中,包含了一个名为“MatrixSaver-master”的文件,我们可以推测这是一款模仿《黑客帝国》数字雨效果的屏幕保护程序。 首先,我们来理解一下...

    黑客帝国矩阵屏保

    《黑客帝国矩阵屏保》是一种深受科技爱好者喜爱的个性化电脑屏幕保护程序,它以其独特的视觉效果,模拟了电影《黑客帝国》中著名的“绿色字符雨”场景。这种屏保不仅在视觉上带来强烈的科技感,同时也体现了编程世界...

    黑客帝国代码屏幕保护

    黑客帝国代码屏幕保护

    黑客帝国数字雨屏保欢迎下载

    《黑客帝国数字雨屏保欢迎下载》是一款深受黑客帝国粉丝喜爱的电脑屏幕保护程序,它以电影《黑客帝国》中的经典元素——“数字雨”为主题,为用户带来了独特的视觉体验。这款屏保模拟了电影中矩阵代码下落的场景,...

Global site tag (gtag.js) - Google Analytics