诶嘿嘿~想到了一个好玩的。有人在MathOverflow上问类似问题,下面回答大多也和这里差不多,只有一位骨骼轻奇脑洞大开的如下:
大意:
我痛恨把作为的简写。大家都习惯这么用,但这样写会引发符号体系的深层次问题。比如你从来不敢确定或者到底意味着什么。。。
现代数学中人们又不怎么用乘法,想不通为什么需要这样的简写。
还有也是很坏的记法,让我们都没法写上标啦。指数写成多好。
唔,这个原PO是Perelman的师弟。。。
big list - What are the worst notations, in your opinion ?(2016-09-30最近更新)
有,从一个数学竞赛转职码农的角度来看:
数学符号不自带类型系统是我认为比较严重的问题,尤其是线性代数中的矩阵和向量,默认的写法不表示其维度,导致大量的数学证明需要单独一句话来解释符号的含义,类似“AX=b, where A is an n×n matrix, X and b are n×1 vectors."而有些文章中假设读者对上下文已经有所了解的情况下,经常连后面一句话也省略了,导致有的读者完全不知道这些向量的维度,以及能否相乘。
在评论区中
@Sanyu Weng提到了下标表示维度的方法,类似这样的写法,是有道理的。但这种记号的问题有两个:
除此之外,向量经常采用加粗或上标箭头的方法表示(或),然而并不统一,很多时候经常两种格式都没有,极端情形下甚至无法区分标量和向量。
函数也不带类型系统,导致其参数和返回值都需要单独解释。数学中一种常见的思维方式是定义了一个带有参数t的函数f(x),之后将其视为t的函数对t求导,从而得出一系列结果。这种方法本身极其有用,但不加说明的情况下直接将参数换掉,其实是影响阅读体验的。
其他小的问题大多是符号的歧义性:
- 比如常用的勒让德符号其实是一个合法的算术表达式,作为勒让德符号需要特殊说明 。
- 双阶乘a!!也可以解读为"a的阶乘的阶乘"。
- 变量的上标即可能代表幂次也可能代表标号。
虽然在绝大多数情况下这些符号的歧义性在上下文中通过额外的解释可以消弥,但“需要额外的解释”本身就说明了这套符号系统的缺陷。
多说一句,前文提到的“向量通过加粗或上箭头表示”本身也隐含了数学符号系统诞生于手写时代的一个历史遗留问题:其含义必须依赖于排版。这对于高度依赖纯文本可读性的,当前的计算机时代也是一个严重的问题。在绝大部分情况下,我和朋友交流数学相关的问题都会用LaTeX格式讨论,但(1)这需要双方都会TeX或LaTeX,(2)可读性其实大大下降。考虑一下frac{{n choose a}}{{n choose b}}这么简单的例子,是不是已经远不如直观了?
由于符号相乘默认可以省略乘号的规则(),数学符号系统其实是对多字符变量不太友好的,而使用单字符变量就导致了字符集严重不够用的问题——99%的变量是用大写/小写英文字母,或大写/小写希腊字母表示的,总共也只有一百来个不同的符号。这其中还有很多约定俗称的“保留关键字”,比如表示圆周率,i表示虚数单位等。其实虽然无法避免,但我一直比较反对将最佳实践(Best Practice)写进语法规定中的行为,具体到数学上来说:
回到字符集不够的问题上,为了解决这个问题数学家们也是绞尽脑汁,于是就有了 (或者是mathscr{F}, mathscr{U}, mathscr{C},但破乎好像不支持mathscr)这些花体字表示集族、论域、范畴等高阶概念的用法,或者用表示常见集合的记号。但是!这不就回到了我们之前所说的——字符含义依赖于排版——的问题了么!