预见未来 Next (2007)

>>>  自由思想未来视角—精彩影視選  >>> 簡體     傳統

  尽管很多人觉得拥有超能力是一件好事,但事实却偏偏和想象中相反。克里斯(尼古拉斯•凯奇 Nicolas Cage 饰)天生具有预测未来的能力,但他从小就在痛苦中度过:各种机构、政府、医院都对他极感兴趣,以至他快乐的童年都在测试和研究中度过。成年后的克里斯隐形埋名混迹于赌城拉斯维加斯,不时去赌博一下赢点小钱。

  因为一个恐怖组织预谋要炸毁洛杉矶,特工凯莉(朱丽安•摩尔 Julianne Moore 饰)找到了克里斯帮忙。然而,这预测未来的超能力现在令克里斯痛苦万分,因为他预测到无论多么努力,洛杉矶最终还是会被炸毁,而且他的爱人也会在此劫难中死去…… 

拍给程序员看的电影

这个片子一点都不文艺。因此我很喜欢。因此本评论写给程序员看。

这是我见过的关于“未来”“时 间旅行“一类电影中剧情最严密,逻辑最自圆其说的一部片子。

我怀疑编剧是个程序员。

首先简单回顾下剧情:主角起初可以预见到两分钟内的未来情况,因此可以提前趋利避祸。后来他为了遇到了一个命中注定的女人,去尾行(tail)跟随她来到了大峡谷。他发现和这个女人在一起时,他可以预见到更远的未来。后面的剧情,就是被一些没看懂的人大骂被耍了的情节:主角预见到比较远的未来,在未来,他又不断产生各个分支去搜索各种结局,最后这条路径还是无法找到最优解(其实是获得了一个最差的结果,全都死掉了),因此在电影的最后,整条搜索分支都回溯回远点。

显然,他运用了递归的能力。这一点在电影的高潮,码头仓库一段体现的最淋漓尽致:他在每条岔路口都递归的去搜索。这个情节简直可以拿来放到计算机算法课上当课件用了。

其实在电影的最后,主角选择了和政府合作共同打击黑恶势力,还很狗血的说了几句挺哲理的话。但这就是结局么? 醒醒吧,这是编剧照顾文艺小资们的情绪故意卖的破绽。谁家用递归写个深度优先的搜索会只搜索一条分支呢?!

而那句很狗血的话:关于未来的一个特性就是每次你看着他时他会改变,因为你看着他了。

这分明是对side effect 的批判嘛,在另一部伟大的电影butterfly effect 中也有对 side effect 的深刻批判。因为有了副作用,程序的行为将变得不可预知,程序的正确性验证也就无从谈起。这是主角对纯粹函数式开发的深切呼唤。

通过FP还有另一个好处:并行

关于这段搜索的情节,有几点值得主义的:他同时并行执行了多个搜索任务。但是在电影里,又似乎不是纯粹的并行,因为其他的搜索分支会知道之前的搜索结果,进行剪枝。这算是搜索优化。

关于递归,大家基本上都认同吧。那么为什么起初主角只能预见两分钟,而后来尾随了一个mm后就人品大爆发了呢?真相就是他开始”尾递归”了。

关于电影名 “next” 。 这是表示迭代中止,跳转的语句。

另外,关于未来的计算,未来的过程,大家想起点什么来没??continuation。

think about it. 为了宣传FP的思想,老美居然拍了部电影,真是寓教于乐阿。


2023-06-19 17:39:28

[新一篇] 戰爭游戲 The War Game (1965)

[舊一篇] 環形使者 Looper (2012)
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表