1
0
Fork 0
blog/content/posts/人间世/岁时录/Ephemeralis-Weekly(12):浮沫之下.md

258 lines
29 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Ephemeralis-Weekly12浮沫之下
date: 2024-11-10
summary: 浮生散记第十二期
description: 本文是作者周报的第十二期,涵盖了从日常生活到技术探索到哲学思考的多方面内容。文章开始分享了《功利主义》的读书报告以及期中考试周的繁忙,展现了在学业压力下的时间管理和学习策略。接着,文章转向了对个人技术栈的更新和调整,讨论了更换 Newsletter 服务的需求,同时还分享了更换静态资源 CDN 的尝试以及字体分发策略的调整,此外还涉及邮件管理以及希望更换更贴合个人形象的域名。在消费行为上,分享了因冲动购买 VPS 而后悔的经历,引发了对理性消费和冷静期的讨论。此外,文章记述了校园内咖啡店即将停业的消息,表达了自己的感伤。此外,作者表达了对 ColorOS 的强烈批评和更换更加纯净的安卓系统的愿望。最后,作者从用 Python 占卜开始,深入讨论了从伪随机数到量子现象的随机性,引申出对世界决定论和随机性的哲思。
categories: ["人间世"]
series: 岁时录
tags:
- 周报
- Newsletter
- 日常
- 域名
- 随机性
slug: weekly-12
featuredImage: https://img.viento.cc/cover/weekly-12-cover.webp
draft: false
wikilinks: true
---
各位老友们好,我是 Chlorine。新的一期周报双手奉上。
本期的标题主要来自于对文中几个主题的引申,依然很抽象。同时本期内容时间跨度比较长(原因请见文中),内容冗长且杂乱(本来这期周报会更长的,但是被小氯砍掉了两个还没想好的话题),希望各位老友不要嫌弃 qaq
本文为园子周报——Ephemeralis Weekly浮生散记的第十二期日期范围为西历 2024 年 10 月 28 日至 11 月 10 日。祝食用愉快。
## 读《功利主义》[^1]
实际上这并不是小氯突然正经起来,要抽出时间读点哲学著作了,就算是,正在被一堆 DDL 和期中考试殴打的小氯也不会选择在这个时候深化人文素养。纯粹是因为 CTMR批判性思维与道德推理课程要求写《功利主义》的读书报告而且周五就要收了而已。
…………(不敢哭出声)
总体来说这本书不厚,只能算是本小册子。同时除开奇怪的翻译腔之外,讲得也不算特别晦涩,包括最大幸福原理、正义和功利的关系等都讲得很清楚,对于希望入门式地了解功利主义的老友来说是个很好的选择。
## 期中周
众所周知,小氯虽然是只鸽子,但是在周报方面还是尽可能保证每周写几段不长的内容。但是上周小氯一反常态地鸽掉了周报,不是因为小氯太懒(~~虽然也确实不勤快~~),而是因为,每学期一次的大清洗——期中寄即将开始。
对于小氯来说期中寄基本上是期中周DSA 的 PS2、LAB2会原的大作业中作业大物、社调和中微的期中考试都在这周。ICS 的 Bomblab经典的拆弹实验虽然也很可怕不过 DDL 比较远,可以暂且放一放。
大概从周四(有可能是 10 月末11 月初的样子吧,小氯已经记不清具体几号了)开始,小氯意识到再不开始写和复习,估计真要寄了,于是当天加周五摸鱼的时间拼死拼活地赶了一道 PS。这里需要解释一下一次 PSProblem Set包含若干道题分为几个题组大概是两三个每个题组选做一道即可。每一道题都是非常霉耗的编程挑战对于 OI 大佬们不值一提,但是对小氯来说简直就是噩梦。
然后周末继续干活。为了避免 PTSD~~实际上已经了~~),小氯先做了会原的大作业。大作业是根据一份交易明细填充账目,然后做 Annual Adj最后总结出 Consolidated Statement of Earnings 和 Consolidated Balance Sheets 之类乱七八糟的东西,实际就是一点应用。不得不说,这个东西比看起来简单且有意思多了,小氯小半天就解决了(这甚至是一份小组作业,但是单人写非常轻松)。
本来想着周末能搞完两样就 OK 了,但是想想下周霉耗的考试,小氯还是强撑着开始搞剩下的 PS。过程之曲折不多说了总而言之就是小氯奇迹般地实现了在周末对题目进行的大扫荡把 PS2 基本送上西天。其中有一题解题过程非常有趣:小氯写了一两个小时感觉没什么头绪,就去答疑中心摇人去了,结果和大佬交谈了两句,自己突然福至心灵,调整了一下两行代码的顺序,然后……就过了。在剩下的周日,小氯甚至还抽空写了半道 LAB2。
一周末搞掉这么多东西,确实可以说是战果累累。然而一刻也没有为 PS2 的完成而庆贺,马上赶到战场的是终危。接下来的几天小氯都在终危中挣扎,所幸考试不算特别难;然后是社调,纯背,无甚可讲;然后是大物,同样很幸运地不算难。在大物考完的晚上,也就是今天晚上,本学期第一次高技术战争的线下课上,小氯整理了 LAB2 的报告,当 Report 上传完成的那瞬间,小氯的期中周就算是结束了。
总体而言……怎么说呢?要是说学习效率的高低,这周确实很高,毕竟我之前一周都做不了一道 DSA。但是无可否认的是小氯酱真的很累了~~简直要坏掉了~~。于是第二天早上大胆地关了闹钟,睡了个自然醒。
## Newsletter
在之前的文章 [HelloQuail]({{< relref "HelloQuail.md" >}}) 中,小氯宣布使用 Quail 作为园子的 Newsletter 选择。
不夸张地说在小氯见过的同类产品中Quail 是最好的一个,甚至可以说没有之一:对大陆地区友好(这点就可以打败更加老牌且强劲的 Substack 了出色的编辑器Obsidian 支持,等等。同时 Quail 的创始人[歌词经理](https://blog.lyric.im/) 也是位很 Nice 的开发者,对于 Issue 的讨论非常友好和开放(可以看[这里](https://github.com/quail-ink/obsidian-quail/issues/12))。
不过……问题是,小氯主要把 Quail 当作 Newsletter 使用,因此除了 Newsletter小氯不在乎其另外的功能。至于 AI Summary由于 Quail 自带的摘要功能的质量实在是不太理想,因此小氯大部分时候采取直接复制全文到大模型聊天框的方式,所以这个功能也用不到了。对于这样一个平台,如果不能回馈给其对应的价值,只是在「关于」里面轻飘飘地提一句,那么在使用 Quail 的服务的时候,小氯是过意不去的(~~Vercel、Netlify、CloudFlare我们没意见~~这也算是种功利主义的道德原则吧。而且现在小氯在每次发布前都需要做一番调整例如生成元数据手动发布然后上传封面图S3 流量这种东西还是能省点就省点吧)。这个工作量不大,但是心智压力不小。
于是小氯就在琢磨着,找一个新的 Newsletter 方案。
目前小氯其实比较喜欢 [Listmonk](https://listmonk.app)Go 语言完成的项目,现代而简约。但是 Listmonk 需要 PostgreSQL小氯非常不希望在自己的服务器上安这个大家伙而作者又明确说不支持 SQLite因此就造成了这种尬住了的情况。
对于小氯这种超轻量级(一共四个订阅者 🤣)的使用来说,其实最简单的方案就是写个 Python 脚本,每次发布之前在本地跑一遍。不需要数据库,一个 `subscribers.json` 即可,甚至硬编码都行。即使小氯对 Python 不甚了解,但是只要给小氯一点点时间,就能写一个对小氯来说生产可用的脚本出来。
不过要是有时间的话,小氯还是希望自己写一个可用的项目出来,
## 新的静态资源 CDN
最近[清扬老友](https://www.liushen.fun)推荐了一个新的 jsDelivr 加速镜像:[智云加速](https://cdn.smartcis.cn)。小氯是信任清扬老友的,因此也可以接受这个二阶信任链。所以小氯把自己的 `gcore.jsdelivr.net` 换成了这个加速站点,毕竟 jsDelivr Gcore 虽然在大陆能比较快地访问,但是这个比较也是相比 jsDelivr 主站点而言的。
不过这里小氯遇到了一个问题小氯的站点字体LXGW Bright 和 Fira Code也是用 jsDelivr 加速的。jsDelivr 的使用条款没有禁止分发字体OFL 1.1 许可证也允许使用 CDN 分发,**但是对于镜像站不是这样**。因为相比 JavaScript、CSS 等文件而言,字体是一种比较大的资源——尤其是中文字体,即使是分包之后也是如此,而在当下的环境下,做公益镜像本就举步维艰,再把镜像作为图床或者字体 CDN 显然是一种竭泽而渔的恶劣行为,而智云加速的主理人也明确禁止使用智云分发字体(这在技术上应该不算太困难,直接把特定后缀的文件禁止掉就完事,即使引用的是 `result.css``.woff2` 加载不出来也白搭)。
于是小氯没有把字体切到智云Fira Code 还是使用的 Gcore而 LXGW Bright 则换成了[中文网字计划](https://chinese-font.netlify.app)的 Deno 线路。Deno 线路实际上是用 Deno 的运行环境转接的 ImageKit所以这个自建也问题不大。
嗯,自建,好主意。自己有一条和公共线路质量相近的线路总归不是件坏事。于是小氯开始忙里偷闲地尝试一些可能的分发方式,目前为止尝试了以下方式:
1. Gcore + Netlify每个月 1 T 流量,绝对用不完,然而由于小氯不太了解 CDNGcore + Netlify 总是出错误,遂放弃。
2. Netlify 直连:每个月 100 G似乎可以通过一些方式升级到每月 1 T。结合优选线路速度尚可。
3. Deno Dev + ImageKit很顺利速度和 Netlify 相近,但是最好套一层 CDN。至于套什么 CDN各位可以自由发挥。
4. 无畏云:[杜老师](https://dusays.com)推荐的 CDN免费额度很高很适合在有备案的情况下对接对象存储来分发图片和字体。不过官网打不开了不知道怎么回事。
5. 多吉云:速度非常快(废话,国内 CDN每个月 20 G 也算够用。由于小氯上传字体文件一般都是直接丢到仪表板上,因此没有 SDK 也无所谓。
现在小氯还是选择了多吉云,不过目前线路还没有完全切过去。毕竟国内 CDN 这种东西实在是太 fragile 了,小氯有点害怕。
最后,容小氯抱怨一句:滥用真的太可怕了,当年的 jsDelivr 本来是为数不多的能够在大陆地区流畅运行的开发资源 CDN 之一,结果一大批人用 jsDelivr 当图床、视频床,甚至借助 `gh` 字段分发违法内容,结果就是 DNS 污染、备案吊销,导致现在 jsDelivr 在大陆基本处于不可用状态结果只能出现这种「CDN 的 CDN」的离奇场景……为了自己的幸福损害了大多数人的幸福最后连自己的幸福都丢掉了抱歉这非常不功利主义。
**以及,向无私地提供公益服务的开发者和运营者们致敬,人类的幸福因你们的嘉言懿行而极大地增进。**
## 小氯的 Mailbox
最近小氯收到了一封邮件,这封邮件的一部分内容大概是长这样(这不是加密前的原文,只是希望给大家展示下到底是什么感觉):
![780](https://img.viento.cc/IMG-20241110112637.avif)
这很明显是经过加密的。小氯一下子来了兴趣,毕竟这可是小氯收到的第一封加密邮件。于是小氯用自己的私钥进行了解密,并与发邮件的老友进行了友好的交流。期间还出了一点有趣的事情。
在回复邮件的时候,小氯想了一会儿怎么样才是最安全的。思来想去小氯使用了最淳朴的方法:写 Markdown用 GPG 加密之后作为附件发过去。这样就不会受到邮件客户端的束缚了。
写完邮件,小氯开始思考,小氯到底需要什么样的一个 Mailbox 体系。
在电脑端,小氯希望能有一个足够好的客户端环境:足够的兼容性,现代化的界面和编辑体验,足够快的速度,以及支持 GPG 加密;至于在手机端,小氯的要求很低,能看就行。对于特别的邮箱(例如小氯的域名邮箱),小氯会希望能够收到即时通知。但是对于 IMAP 协议来说即时通知并不算什么容易的事除非把客户端一直挂在后台这个我还没试过JMAP 能够比较好地支持即时通知,悲摧的是现在支持 JMAP 客户端的服务端和客户端并不多,其难度相当于在一食堂找疙瘩汤。
说回正题。由于牢果的生态实在是太封闭了,因此小氯根本找不到几个开源的邮件客户端,像 Evolution、KMail 这些都只能在 Linux 的特定桌面环境下运行。目前 macOS 能找到的大概是:
- Thunderbird
- Mailspring
- Claws Mail
Thunderbird雷鸟属于比较著名的选择其支持大量的插件和主题还有一些社区修改版比如~~好鸟~~Betterbird。但是其界面和交互就给我一种……嗯怎么说呢有点古典的感觉。Claws Mail 更不用说,主打一个古典。这可能会吸引一些喜爱经典皮肤的极客,但作为一个现代 UI 风格的爱好者,小氯对此并没有什么审美上的触动。其中最好看的应该还是 Mailspring界面比其余两个现代得不止一星半点。很可惜没有 GPG 加密和签名功能。
至于手机端iOS笑似除了 Delta Chat 就没有开源的邮件客户端了(此处排除了 ProtonMail 和 Tuta 这样的专有邮件客户端,此外 Delta Chat 严格来说也不是邮件客户端。Thunderbird 几年前就说要出 iOS 端,到现在还是没动静,估计是没有下文了。
目前为止,还是在半推半就地用 Apple Mail。可能享受丝滑的开源邮件服务的唯一方式就是换个生态系统了吧
## 换个域名?
眼看着园子马上要一周年了,小氯也开始梳理起了园子这一年的经历,以及也是用一颗热爱折腾的心在思考是否有什么 BREAKING CHANGE可以趁此机会做了。
其中一个比较重要的点是:域名。前几天,[DuckXu](https://i.duckxu.com) 老友在评论中提到:
> 感觉这个新域名比 yoghurtlee 更能突出【小氯】这个形象,我现在在备忘录里看到 yoghurtlee. com 经常反应不过来是谁(
小氯对此深以为然。那 `yoghurtlee.com` 这个有一点奇怪的域名是怎么来的呢?
Yoghurt 并不是字面意思的酸奶(虽然小氯确实很喜欢喝酸奶),而是涉及到现实中小氯的英文名字。这个英文名是我高中的英语老师送的,我对之十分欢喜,虽然说一般来说并不建议使用食物的名字作为英文名。在园子刚刚建立的时候,小氯就按照这个英文名买了域名。这个拼接实在是太冷门了,所以自然也不会有什么人抢注。
随着时间的推移,园子几经搬迁,小氯的 ID 也改成了现在的 Chlorine 和小氯,而原本的英文名字小氯也渐渐不再使用了,还是使用非常通行的汉语拼音。所以说,现在换个域名似乎是合适的选择。
但是小氯原本的域名在 SEO 和 Google 收录等方面已经积累了不少的权重,也绑定了开往和 Algolia Docsearch 等服务,更换起来有一点麻烦。
最重要的问题是:**换成什么呢?**
小氯之前买了个很有趣的 Domain Hack但是这是某个国家的 ccTLD由于其监管的特殊性需要 KYC无 whois 隐私保护),用这个显然是把自己的隐私当成街头校报分发。而且这个后缀也不能备案,虽然说小氯的博客也用不到备案(没有用国内 CDN需要备案的服务都不在上面
对于直接使用 `Chlorine` 作为前缀,这虽然看起来很直观,但是实际做起来非常麻烦。虽然说用这个词当 ID 的应该不会太多但是作为一个完整的英语单词Chlorine 本来就存在溢价。大部分能注册的、后缀不太奇怪的域名都被抢注了。
一个退一步的选择是加一点词汇,比如 `hichlorine.com` 之类的。或者是使用一个简化版本的昵称,例如 Clori 或者是 Cloriti可以参考[这里]({{< relref "Ephemeralis-Weekly7唯有时光.md" >}}))。在挑了半天后,小氯拎出来了一大堆选择,简单列一列,~~水一点长度~~
- `chlorine.dev`
- `chlorine.fun`
- `chlorine.one`
- `hichlorine.com`
- `imchlorine.com`
- `chlorinya.com`
- `chlori.net`Domain Hacker
- `chlor.ink`Domain Hacker
- `clorii.com`
- `cloriti.com`
- `clori.cc`
- `clori.dev`
- `hiclori.com`
目前小氯还没想好这件事到底应该怎么办,各位老友能给一点建议吗?
## 冲动消费与冷静期
很早就听说了 Cloudcone 在搞 PBFPre-BlackFriday活动把机器卖出了白菜价。上次小氯就想着冲一台奈何没货了。周三看到[青山大佬](https://yinji.org)(算是圈里面比较著名的 Cloudcone Affiliate说 Cloudcone 补货了,正好小氯刚刚考完~~终危~~中微,相当兴奋,于是果断买了一台。`2C1G` 的配置,每月流量 3T 带宽 1G~~什么吕布骑猪~~),一年差不多 14 USD确实非常便宜。~~顺带着小氯还买了另一个传家宝数字 `xyz` 域名~~。
然而在高高兴兴地开完荒之后,小氯随手 `free -h` 了一下,然后看到了一个令我头皮发麻的数据:目前,机器的可用存储空间和内存都已经不足一半。
那小氯干了什么?也不过就是预选的时候选择了最熟悉的 Ubuntu Server然后用 Docker 跑了个 Nginx Proxy Manager我甚至都不敢装 1Panel。哦对了还有开了 2 个 G 的 swap。
用惯了 4 G 内存的机器,这个 1 G 的小家伙简直像来凑热闹的。
在经过反复调查后,小氯得出了一个令人沮丧的结论:这台机器几乎无法托管任何稍大一点的项目。毕竟,你不能指望人在瓦片上跳舞。虽然带宽和流量极大,适合用来做一些网络安全方面的学习和研究(~~请自行理解这是什么意思~~),但是小氯并不缺这样的工具。
所以,思来想去,小氯把这台很优惠的 VPS 销掉了,钱款还留在 Cloudcone 里面,毕竟将来大概率还是需要一些 VPS 的。
由此可见,冷静期确实是个很好的东西。不过,我们更应该反思的,恐怕是我们当初为什么会脑子一热。虽然我们不能要求自己时时刻刻理性,但是至少应该做到大部分时候理性。
## FarewellMong's Coffee
早起看到班里同学转发了一条推送。小氯兴趣使然地点开看了下,大致意思就是我们校内的一家咖啡馆要停业了。不得不说,文笔真的很好,让小氯一个从来没去过那里的人都有点感伤。小氯前几天也写了一篇 [[FarewellOmnivore]],但是实在是和这篇文章的功力差远了。
在高中的时候,小氯曾经和朋友一起喝过一点咖啡。当然,什么好的咖啡是不可能的,只是那种最普通的雀巢,拿着教室饮水机的热水冲一冲,简单搅一搅,就是支撑人度过一下午的饮料。不过说实话,这种方式对小氯的作用似乎非常微小,喝了和不喝几乎一样。再加之后来小氯的身体越来越差,就把咖啡停掉了。
上了大学后,小氯依然是对咖啡兴趣不大,只是偶尔当作一点饮料去喝,更多的时候还是水,牛奶,茶或者果茶。瑞幸的话点过一杯生椰拿铁,但是小氯觉得极其难喝,因此从此对这些十元钱以上的咖啡敬而远之。没办法,小氯欣赏不了。
至于那个咖啡馆周围……小氯也不太熟悉。虽然说小氯每周一都去一体(我们的一个体育馆)上课,但是几乎从未踏进甚至接近过那座建筑,除了跟着班级去合唱排练和其他的一些琐事时。那里给我的印象宁静而高雅,若是接近一些,亦可闻丝竹管弦之盛。空气中永远弥漫着淡淡的馨香,只是小氯没有意识到,那是咖啡的香气。
现在呢,小氯只是在想……到底有多少东西,我们从未知晓,等到知晓的那一天,却已经永别了呢?
## This is completely unacceptable, ColorOS
> [!WARNING]
> 下面的部分内容带有极其强烈的情绪化色彩,请谨慎阅读。
小氯本来想写的是「Shame on you, ColorOS」但是感觉还是太冒犯了。由于成长过程中的种种因素小氯对于带有冒犯性的话非常敏感现在在中文中能说出的最重的斥责大概也就是半开玩笑的「虫豸」。像 Linus Torvalds 那样直接来一句「Fxck you NVIDIA」对小氯来说确实是难以启齿的。
好的那么本段的炮击对象也很明显了就是小氯的牢硼铀OPPO 的 ColorOS。
小氯曾经是个 Windows + AndroidOPPO+ iPad 的混搭组合,目前使用的是 Apple EcoiPhoneiPadMacBookAirPods。不过按照小氯目前在开源世界里一去不回的架势估计总有一天会换到 Linux + AOSP 的。而且iOS 实在是过于封闭了,开源生态堪忧,甚至通知都要全部走 APNs确实挺难绷的。
但是话说回来Android-based 的系统也是各有千秋的。而国内各大厂商的锐意创新和精耕细作,造就了一批运行流畅、尊重隐私、自由度高的 modified-Android。就以小氯曾经用过、现在在作为备用机的 OPPO 使用的 ColorOS 为例吧,其优秀操作包括但是不限于不能卸载原装应用(甚至使用 adb 都不行),开启 Dev Mode 之后就疯狂弹通知乃至报出一些我都不知道是哪来的应用的退出错误(~~你退出就退出吧,这辈子都别重新启动才好呢~~),五彩斑斓的广告,关不掉的安装器(以及其扫描和强制检查)……给小氯的感觉就是,家里住了一个流氓,吃我的用我的,整天翻我的日记,对我的家事颐指气使,而且赶还赶不走。
……稍等,小氯去喝口水,平复下心情。
那边的那几个把头转过来别走神别以为没直接批评你们你们就可以高枕无忧了。HyperOSMIUIOriginOS还有那些我忘记你们叫什么了的系统你们都别想跑。都是一群虫豸和你们在一起怎么能搞好技术呢鸿蒙我没用过不评价
反正小氯最后的状态大概是这样的:
![789](https://img.viento.cc/IMG-20241109182434.avif)
这话没开玩笑。如果小氯将来从 iOS 脱身的话,就绝不会再碰任何一种国内的安卓系统(指作为主力系统使用)——严格来说,都不能说是 modified-Android应该叫 botched-Android 或者 tampered-Android。要么是买一台现成的原生安卓手机例如 Google Pixel欧版的 OnePlus有广受好评的 OxygenOS而且得益于 GDPR隐私方面会更好些或者 Nothing Phone要么就刷机。现在小氯已经开始收集一些很旧的手机大部分是小米的准备刷着玩练练手。
(当然,倒也不是说,国产安卓系统就是一无是处,其也是有一些优点的,例如本地化适配。但是对小氯来说,这些优点相比缺点带来的理性和情感损失实在是微不足道。
## 用 Python 占卜?
实际上,本节的标题有一点误导性。本节既不讲 Python也不讲如何占卜。
如果我没记错,我在先前的博文中,不止一次提到过「我一位谙熟语言学的学长」或者是「我一位研究人文社科的学长」这一类的描述。这并不是无中生友,这些称呼说的都是同一个真实存在的人:一位比我高一届的高中文科学长,可能也是我的诸位微信好友中最懂哲学的一位。我,这位学长,[孙哥](https://clf3.org),我们都是关系很好——至少是不错的朋友。
我的这位学长没有一个通用的昵称,我平时一般也只称呼他为「学长」,那就让我们这么叫吧。
我的这位学长是位涉猎甚广、思路开阔的奇人,知识面从政治学到世界历史到理论社会学到古希腊语到歌剧学到罗马艺术到小学教育到概率论到线性代数到分析力学到烧烤的吃法再到崩坏星穹铁道,其各种新奇的想法更是层出不穷。
在他茂密的技能树中有一个不那么起眼的技能:占卜。他曾经兴致盎然地对我说,一次孙哥到他那里玩,他给孙哥算了一卦,后面证明非常灵。
我问:您用的是什么?蓍草吗?
他说Python。
我哑然失笑。
Python 用来占卜,那显然就是随机数了。这样是否就意味着占卜神圣性的消解?毕竟,很难会有人觉得随机产生的数字有什么神圣性。
不过,我们还可以想另外一个更离奇的观点:**计算机的随机数,是伪随机数**。这会象征着什么?
让我们稍微深入地谈一谈这个问题。
Python 的随机数生成基于的是 `random` 模块(也可以用 `secrets`),其核心是 Mersenne Twister梅森旋转算法。MT 算法的原理比较复杂,简单来说就是使用一个固定大小的内部状态数组(对于最常用的 `MT19937` 来说n 为 624每个元素是 32 位整数——注意,这个说的是二进制位),然后经过一堆操作之后输出数字。由于最后的范围是一个梅森素数,所以得名梅森旋转算法。
但是,尽管 MT 算法可以产生在随机性上表现良好的数,但其并不是真正随机的。事实上 MT 算法甚至是线性的,连混沌系统的内禀随机性都不是。
所以说,我们有一个令人兴奋又不安的决定论假设:理论上来说,我们只要知道种子,就可以推导出后面所有的数字——这和传统中的以生辰八字推断人的命运可以说是别无二致。然而请注意,我说的是**理论上**,事实上这样做几乎不可能。大衍之数,窥见天机,是要受天罚的。
而且,伪随机数有一个特征:它们实际上都是极长但是有规律的。也就是说,在经历足够长的时间后,我们可以再次观察到相同的序列。
不知道大家想到了什么,但是我想到了《皇极经世》,尽管我根本没看过也不想看这本书。
那如果我们使用的是「真随机数」呢?例如基于大气运动?
这事确实可行。忘记什么时候听过一个趣事了:在 CloudFlare 的总部中有一面熔岩灯墙,员工们需要随机数的时候就拍一张照片(此处感谢 [@minc](https://itedev.com) 老友的指正)。不得不说,这是个挺有意思的事情。
不过这里面还涉及另一个有趣的问题,就是我们日常所说的「随机现象」,其到底有多少是随机的,随机的程度如何。或者说,随机现象能分级吗?
我们从计算机的随机数开始。如上文所述,计算机随机数大概可以说是「线性伪随机」的,其随机程度最低,尽管在日常使用中可以作为很好的近似。
下一级的随机,可能是混沌系统。混沌系统是一种非线性系统,其运动状态由非线性的微分方程、差分方程或者迭代方程等描述。混沌系统具有高度的初值敏感性,初始状态的一点微小变化就可能引起后续观测的巨大差异(俗称「蝴蝶效应」),这使得混沌系统的行为在实践中是难以预测的,表现出类似随机的特性。但是**混沌系统实际上还是确定的**,其只是具有内禀随机性。因此,我们不妨将其称之为「非线性伪随机」。
接下来就是所谓的「真随机」了。真随机一般也是物理现象,例如大气噪声等。就目前我们的认识来说,「真随机」的尽头是量子现象。量子现象,比如说放射性衰变和光子的偏振滤波,被认为是本质上不可预测的,只能使用概率进行表示。
不过,如果我们「撇开量子的浮沫」,世界究竟是不是随机的还难说呢。几百年前就有拉普拉斯妖的假说(机械唯物主义),尽管目前我们根据测不准原理和最大熵原理[^3]可以反驳掉这个说法;而《镜子》中描述的故事,就是在有了完善的奇点模型、宇宙决定论和足够的算力(超弦计算机)后,世界就成了完全确定的沙盒。尽管最后也没能完成对近期未来的递归预测,但是世界的运行轨迹都是确定无疑的。
好吧,讲着讲着就跑题了,上面那句「占卜神圣性的消解」早不知道丢到哪去了。而且,以上的叙述涉及一点物理知识,小氯对物理几乎一窍不通,因此如果出现错误,敬请批评指正。
[^1]: 对不熟悉哲学的老友们提个醒功利主义Utilitarianism中的「功利」和我们平时常说的功利是两个意思不带有什么贬义。其实小氯觉得翻译成「效用主义」可能更好点毕竟经济学中的「效用」就是这个词。但是「功利主义」这个词汇有历史惯性而且也有自己的优点故遵循旧例。
[^2]: 这里涉及另一项有趣的研究,也就是根据最大熵原理和光速等,得出拉普拉斯妖处理信息的能力实际上存在一个极限。可以看 Wikipedia 或者是[这里](https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.88.237901)。