一篇文章要读多久
用一点算术把阅读时长算出来
几乎每篇长文顶上都有一个「约 X 分钟」。多数是拍出来的:字数除以三百,取个整。这样算不是不行,只是碰到中英混排、代码和公式,偏得厉害。这篇把这个数字重新算一遍,顺便说清楚它什么时候不该信。
一、先把单位统一
汉字和英文单词不同量纲。以汉字为基准,中文字数 直接计入;英文词数 要乘一个折算系数 。于是等效字数
时间就是 除以中文的阅读速度。问题是 取多少。
二、系数从速度来
默读、且要求读懂的速度,常见区间是:英文每分钟 200 到 250 词,中文每分钟 300 到 500 字1。取中间值,设中文阅读速度 字每分钟,英文阅读速度 词每分钟。
读一个英文词花的时间是 分钟;这段时间里,中文能读掉 个字。所以一个英文词在时间上等价于
个汉字。注意这只是时间等价,不是长度换算。翻译上常用的比例是英文一个词译成 1.6 到 1.8 个汉字,两个数字碰巧接近,但来源不同,不要混为一谈。
三、代码与公式要加价
正文可以顺读,代码不行。读一行代码要先看清缩进与结构,再判断它和上下文的关系,比读一行散文慢。经验上给一行代码算六到八个字的时间,一行独立公式算八到十个字。取偏小的值:
其中 是代码行数, 是独立公式行数,,。最后一个式子向上取整,不四舍五入:读者不会在十三点一分钟的时候准时停下,取上界更接近实际的感受2。
| 符号 | 含义 | 取值 |
|---|---|---|
| 中文字数 | 数出来的 | |
| 英文词数 | 数出来的 | |
| 英文词的时间折算 | ||
| 代码行数 | 数出来的 | |
| 每行代码的等价值 | 字 | |
| 独立公式行数 | 数出来的 | |
| 每行公式的等价值 | 字 | |
| 中文阅读速度 | 字每分钟 |
四、拿一篇真文章验算
取一篇中等的技术文章:正文 个汉字, 个英文词, 行代码, 行公式。代入:
再除以速度:,向上取整,十四分钟。
站内那个数字是另一个算法:它把代码块与公式整段剥掉,只数正文,再除以 3203。同一篇文章算出来是 ,四舍五入后十一分钟。差了三分钟,差在三处地方——不看代码与公式、除数用 320 而不 300、用四舍五入而不向上取整。这个数字是在构建期一次算好的,请求时不再重算——那条链子见 一篇文章的旅程。
哪个对?看用途。这个数字要在服务端之外的地方极快地算完,也就在构建期跑一行正则,所以站内选的是更便宜的算法。它偏短,但方向是对的:文章越长,估出来的时间越长。
同一篇,三种速度
三千九百三十六个等效字:精读的人(200 字每分钟)要二十分钟,按中间值(300)是十四分钟,扫读(500)不到八分钟。 差到两倍以上,所以它只适合用来比长短,不适合用来许诺。
五、误差在哪里
这个模型有三处靠不住:
- 速度取的是区间中点。精读两百字一分钟,扫读能到五百。同一篇文章,两个人的时间能差一倍。
- 密度不均。一段术语密集的论证,读起来比一段讲故事的话慢得多,模型却按同一个速度算。
- 中断。手机上读,切出去回一条消息,回来要重读一句。时间不是连续的。
所以这个数只能用来做相对比较:这篇比那篇长多少,值不值得现在开始读。真要当承诺,就必须写成「约」,而且最好说明是中位数。
一句话总结:模型的价值不在那个整数,在把「读起来费劲」这件事拆成了可以讨论的几项。
Footnotes
关联4
知识图谱出链1
局部图谱 · 点节点跳转