在数学中,以Kenneth E. Iverson命名的“艾佛森括号”(Iverson bracket),是一种用方括号记号,如果方括号内的条件满足则为1,不满足则为0. 更确切地讲,
:[P] = \begin{cases} 1 & \text{If } P \text{ is true;} \\ 0 & \text{Otherwise.} \end{cases}
此处 是一个可真可假的命题。该记号由Kenneth E. Iverson在他的编程语言APL中引进,而特别使用方括号则是由高德纳倡导的,目的是避免含括号的表达式中的歧义。
用途
艾弗森括号通过自然的映射\textbf{false}\mapsto 0; \textbf{true}\mapsto1将布尔值转化为整数值,这就允许计数被表示为和式。例如,计数与小于n且正整数n互质的正整数的个数的欧拉函数可以表示为
: \phi(n)=\sum_{i=1}^{n}[\gcd(i,n)=1],\qquad\text{for }n\in\mathbb N^+.
更一般地,此记号使得将和式和积分式中繁多的条件移入并成为被加(积)项的一个因子成为可能。这将减少累加记号周围的空间,更重要的是这允许运算更加代数化。例如,
: \sum_{1\le i \le 10} i^2 = \sum_{i} i^2[1 \le i \le 10].
另一个例子是化简带特例的方程,例如公式
:\sum_{1\le k\le n \atop \gcd(k,n)=1}\!\!k = \frac{1}{2}n\varphi(n)
对一切有效,但是右边有 对于 。为了得到一个一切正整数n都成立的恒等式,可以利用艾弗森括号补充等式:
:\sum_{1\le k\le n \atop \gcd(k,n)=1}\!\!k = \frac{1}{2}n(\varphi(n)+[n=1])
样例
克罗内克函数 : \delta_{ij} = [i=j].
符号函数和单位阶跃函数:
: \sgn(x) = [x > 0] - [x
: H(x) = [x > 0].
最值与绝对值:
: \max(x,y) = x[x>y]+y[x\leq y],
: \min(x,y) = x[x\leq y]+y[x> y],
: |x| = x[x\geq 0]-x[x
上下取整函数:
: \lfloor x \rfloor = \sum_{n=-\infty}^{\infty}n[n \le x
: \lceil x \rceil = \sum_{n=-\infty}^{\infty}n[n-1
可被表示为
:\{x\} = x\cdot[x\geq 0].
实数的三分律等价于下面的恒等式:
:[a b] = 1.
另见
*
注释
参考来源
- Donald Knuth, "Two Notes on Notation", American Mathematical Monthly, Volume 99, Number 5, May 1992, pp. 403–422. (http://www-cs-faculty.stanford.edu/~knuth/papers/tnn.tex.gz , )
- Kenneth E. Iverson, A Programming Language, New York: Wiley, p. 11, 1962.
评论 (0)