艾佛森括号
在数学中,以Kenneth E. Iverson命名的“艾佛森括号”(Iverson bracket),是一种用方括号记号,如果方括号内的条件满足则为1,不满足则为0. 更确切地讲,
![{\displaystyle [P]={\begin{cases}1&{\text{If }P{\text{ is true;}\\0&{\text{Otherwise.}\end{cases}](https://wikimedia.org/api/rest_v1/media/math/render/svg/794806c2ea45e922e06d21a01bedc68d94f63dc8)
此处 P 是一个可真可假的命题。该记号由Kenneth E. Iverson在他的编程语言APL中引进[1],而特别使用方括号则是由高德纳倡导的,目的是避免含括号的表达式中的歧义。[2]
用途
艾弗森括号通过自然的映射
将布尔值转化为整数值,这就允许计数被表示为和式。例如,计数与小于n且正整数n互质的正整数的个数的欧拉函数可以表示为
![{\displaystyle \phi (n)=\sum _{i=1}^{n}[\gcd(i,n)=1],\qquad {\text{for }n\in \mathbb {N} ^{+}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bbc403d665aad384552591ea3d98add8af0950a1)
更一般地,此记号使得将和式和积分式中繁多的条件移入并成为被加(积)项的一个因子成为可能。这将减少累加记号周围的空间,更重要的是这允许运算更加代数化。例如,
![{\displaystyle \sum _{1\leq i\leq 10}i^{2}=\sum _{i}i^{2}[1\leq i\leq 10].}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c8bc0a6901293259c1932337d4be58496ba497f0)
另一个例子是化简带特例的方程,例如公式

对一切n > 1有效,但是右边有 1/2 对于 n = 1。为了得到一个一切正整数n都成立的恒等式,可以利用艾弗森括号补充等式:
![{\displaystyle \sum _{1\leq k\leq n \atop \gcd(k,n)=1}\!\!k={\frac {1}{2}n(\varphi (n)+[n=1])}](https://wikimedia.org/api/rest_v1/media/math/render/svg/25c71d0e09fb43a028c48fc640101a56eead61a5)
样例
克罗内克函数 :
符号函数和单位阶跃函数:
![{\displaystyle \operatorname {sgn}(x)=[x>0]-[x<0]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b8b8fd8c9ca3caeed2c82ca00356a086b4b46196)
![{\displaystyle H(x)=[x>0].}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5726d35ba3c7cade5e07e0e6ea0c2a8002916cca)
最值与绝对值:
![{\displaystyle \max(x,y)=x[x>y]+y[x\leq y],}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f7c1b3234efba7323856def61ceed61c4329ada6)
![{\displaystyle \min(x,y)=x[x\leq y]+y[x>y],}](https://wikimedia.org/api/rest_v1/media/math/render/svg/86a7c2256206212dcccb6d9dab978a15c4a4263e)
![{\displaystyle |x|=x[x\geq 0]-x[x<0].}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d248072015bae9fb2f580dfc3401f29ae0a6c2fc)
上下取整函数:
![{\displaystyle \lfloor x\rfloor =\sum _{n=-\infty }^{\infty }n[n\leq x<n+1]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ce8256f154cdfa2b1d79c194f5425dab47869d78)
![{\displaystyle \lceil x\rceil =\sum _{n=-\infty }^{\infty }n[n-1<x\leq n].}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3727f74fcf051383508aafdfabca586a1db56da0)
麦考利括号可被表示为
![{\displaystyle \{x\}=x\cdot [x\geq 0].}](https://wikimedia.org/api/rest_v1/media/math/render/svg/9637d1d5e85a71834dc40df0af60c07799f823b8)
实数的三分律等价于下面的恒等式:
![{\displaystyle [a<b]+[a=b]+[a>b]=1.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f904a0e9312701114b104202634fa07e250c2605)
另见
注释
参考来源
- 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 (页面存档备份,存于互联网档案馆), arXiv:math/9205211)
- Kenneth E. Iverson, A Programming Language, New York: Wiley, p. 11, 1962.
|
---|
特征 |
- APL语法与符号
- 直接函数(dfn)
- APL符号代码页
- 艾佛森括号
- 秩
- 共享变量
| |
---|
实现 | 主要 |
- APL2 → APLX
- NARS → NARS2000
- SHARP APL
- Dyalog APL
|
---|
方言 |
- A+
- APLNext → VisualAPL
- ELI
- GNU APL
- J
- K
- Q
- PPL
|
---|
|
---|
社群 | 协会 | |
---|
组织 | |
---|
人物 |
- Philip S. Abrams
- Bob Bernecky
- Larry Breed
- Charles Brenner
- Fred Brooks
- Jim Brown
- Adin Falkoff
- Patrick E. Hagerty
- Herbert Hellerman
- Roger Hui
- Kenneth E. Iverson
- Dick Lathwell
- Eugene McDonnell
- Robert Metzger
- Roger Moore
- Alan Perlis
- John Scholes
- J. Henri Schueler
- Bob Smith
- Edward H. Sussenguth Jr.
- Arthur Whitney
- William Yerazunis
- Rodnay Zaks
|
---|
其他 | |
---|
|
---|
|