相關閱讀 |
>>> 自由思想未来视角—精彩影視選 >>> | 簡體 傳統 |
盡管很多人覺得擁有超能力是一件好事,但事實卻偏偏和想象中相反。克里斯(尼古拉斯•凱奇 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
稱謂:
内容: