在數學中,以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.
|
---|
特徵 | | |
---|
實現 | 主要 |
- APL2 → APLX
- NARS → NARS2000
- SHARP APL
- Dyalog APL
|
---|
方言 | |
---|
|
---|
社群 | |
---|
|