Матеріал з Вікіпедії — вільної енциклопедії.
Ду́жка Айверсона — функція, що повертає 1 для істинного висловлювання , і 0, якщо аргумент хибний:
[
P
]
=
{
1
,
якщо
P
істинне
0
,
якщо
P
хибне
{\displaystyle [\,P\,]={\begin{cases}1,&{\text{якщо }}P{\text{ істинне}}\\0,&{\text{якщо }}P{\text{ хибне}}\end{cases}}}
Нотація, яку Кеннет Айверсон ввів для мови програмування APL , виявилася дуже зручним математичним позначенням, наприклад, з ним можна лаконічно визначити:
символ Кронекера :
δ
i
j
=
[
i
=
j
]
{\displaystyle \delta _{ij}=[\,i=j\,]}
,
індикаторну функцію :
1
A
(
x
)
=
[
x
∈
A
]
{\displaystyle \mathbf {1} _{A}(x)=[\,x\in A\,]}
,
функцію Гевісайда :
θ
(
x
)
=
[
x
⩾
0
]
{\displaystyle \theta (x)=[\,x\geqslant 0\,]}
,
функцію знака числа :
sgn
(
x
)
=
[
x
>
0
]
−
[
x
<
0
]
{\displaystyle \operatorname {sgn}(x)=[\,x>0\,]-[\,x<0\,]}
.
Також нотація зручна при користуванні сумами , оскільки дозволяє виражати їх без обмежень на індекс підсумовування, наприклад:
∑
i
=
1
n
a
i
=
∑
k
a
k
[
1
⩽
k
⩽
n
]
{\displaystyle \sum _{i=1}^{n}a_{i}=\sum _{k}a_{k}[\,1\leqslant k\leqslant n\,]}
,
тобто індекс
k
{\displaystyle k}
пробігає всю множину
Z
{\displaystyle \mathbb {Z} }
цілих чисел , і формально підсумовується нескінченна кількість доданків , але лише скінченне число їх відмінне від нуля.
Приклад обчислення з використанням дужок Айверсона суми
S
=
∑
i
=
1
n
−
1
∑
j
=
i
+
1
n
a
i
a
j
{\displaystyle S=\sum _{i=1}^{n-1}\sum _{j=i+1}^{n}a_{i}a_{j}}
для послідовності
{
a
i
}
{\displaystyle \{a_{i}\}}
:
[
i
<
j
]
+
[
i
=
j
]
+
[
i
>
j
]
=
1
{\displaystyle [\,i<j\,]+[\,i=j\,]+[\,i>j\,]=1}
,
∑
i
,
j
a
i
a
j
[
i
<
j
]
+
∑
i
,
j
a
i
a
j
[
i
=
j
]
+
∑
i
,
j
a
i
a
j
[
i
>
j
]
=
∑
i
,
j
a
i
a
j
{\displaystyle \sum \limits _{i,j}a_{i}a_{j}[\,i<j\,]+\sum \limits _{i,j}a_{i}a_{j}[\,i=j\,]+\sum \limits _{i,j}a_{i}a_{j}[\,i>j\,]=\sum \limits _{i,j}a_{i}a_{j}}
,
S
+
∑
i
a
i
2
+
S
=
(
∑
i
a
i
)
2
{\displaystyle S+\sum \limits _{i}a_{i}^{2}+S={\biggl (}\sum \limits _{i}a_{i}{\biggr )}^{2}}
,
а оскільки для правої частини:
∑
i
,
j
a
i
a
j
=
∑
i
∑
j
a
i
a
j
=
∑
i
a
i
∑
j
a
j
=
(
∑
i
a
i
)
2
{\displaystyle \sum \limits _{i,j}a_{i}a_{j}=\sum \limits _{i}\sum \limits _{j}a_{i}a_{j}=\sum \limits _{i}a_{i}\sum \limits _{j}a_{j}={\biggl (}\sum \limits _{i}a_{i}{\biggr )}^{2}}
,
то:
S
=
∑
1
≤
i
<
j
≤
n
a
i
a
j
=
1
2
(
∑
i
=
1
n
a
i
)
2
−
1
2
∑
i
=
1
n
a
i
2
{\displaystyle S=\sum _{1\leq i<j\leq n}a_{i}a_{j}={\frac {1}{2}}{\biggl (}\sum _{i=1}^{n}a_{i}{\biggr )}^{2}-{\frac {1}{2}}\sum _{i=1}^{n}a_{i}^{2}}
.
Грэхем Р., Кнут Д., Паташник О. Конкретная математика. — М . : Мир , 1998. — 703 с. — ISBN 5-03-001793-3 .
Kenneth E. Iverson . A Programming Language. — the University of California : Wiley, 1962. — 286 с. — ISBN 0471430145 .