艾佛森括号

来自testwiki
跳转到导航 跳转到搜索

Template:NoteTA数学中,以Kenneth E. Iverson命名的“艾佛森括号”(Iverson bracket),是一种用方括号记号,如果方括号内的条件满足则为1,不满足则为0. 更确切地讲,

[P]={1If P is true;0Otherwise.

此处 Template:Math 是一个可真可假的命题。该记号由Kenneth E. Iverson在他的编程语言APL中引进[1],而特别使用方括号则是由高德纳倡导的,目的是避免含括号的表达式中的歧义。[2]

用途

艾弗森括号通过自然的映射false0;true1布尔值转化为整数值,这就允许计数被表示为和式。例如,计数与小于n且正整数n互质的正整数的个数的欧拉函数可以表示为

ϕ(n)=i=1n[gcd(i,n)=1],for n+.

更一般地,此记号使得将和式和积分式中繁多的条件移入并成为被加(积)项的一个因子成为可能。这将减少累加记号周围的空间,更重要的是这允许运算更加代数化。例如,

1i10i2=ii2[1i10].

另一个例子是化简带特例的方程,例如公式

1kngcd(k,n)=1k=12nφ(n)

对一切Template:Math有效,但是右边有 Template:Sfrac 对于 Template:Math。为了得到一个一切正整数n都成立的恒等式,可以利用艾弗森括号补充等式:

1kngcd(k,n)=1k=12n(φ(n)+[n=1])

样例

克罗内克函数 : δij=[i=j].

符号函数单位阶跃函数

sgn(x)=[x>0][x<0]
H(x)=[x>0].

最值与绝对值:

max(x,y)=x[x>y]+y[xy],
min(x,y)=x[xy]+y[x>y],
|x|=x[x0]x[x<0].

上下取整函数

x=n=n[nx<n+1]
x=n=n[n1<xn].

Template:Tsl可被表示为

{x}=x[x0].

实数的三分律等价于下面的恒等式:

[a<b]+[a=b]+[a>b]=1.

另见

注释

Template:Reflist

参考来源

Template:APL编程语言

  1. Ronald Graham, Donald Knuth, and Oren Patashnik. Concrete Mathematics, Section 2.2: Sums and Recurrences.
  2. Knuth 1992.