数列の和の公式——Σ記号とべき乗の和
シグマ記号 Σ とは
たとえば、クラス30人のテストの合計点を表したいとします。 と書くのは面倒ですよね。さらに100人、1000人になったら?
そこで数学者は省略記号を発明しました。シグマ記号(、ギリシャ文字のS。Sumの頭文字)を使うと、どんなに長い和もコンパクトに書けます。
読み方:「 が から まで変化するときの の総和」。 の下に「始まり」、上に「終わり」、右に「何を足すか」を書く——それだけです。
Σ の基本性質
「2つの数列を足してから合計」しても「それぞれ合計してから足す」しても同じ結果になります。スーパーのレシートで「野菜の合計 + 肉の合計 = 全品目の合計」と同じ発想です。
Σ(aₖ + bₖ) = Σaₖ + Σbₖ (線形性)
Σ c·aₖ = c · Σaₖ (定数倍)
Σ c = c·n (定数の和)
公式1:Σk = n(n+1)/2(三角数)
「1から100まで全部足すといくつか?」——小学生のガウスが一瞬で答えたという有名な話があります。前回の等差数列の和の公式がそのまま使えます。
この値は三角数と呼ばれます。 段の三角形に点を並べると、ちょうどこの数になるためです。
証明(等差数列の和として): 初項 、末項 、項数 の等差数列の和なので 。「順方向と逆方向を足すと全て になる」というガウスのトリックと同じ計算です。
のとき: ✓
三角数の視覚化
点を三角形状に並べると の値が自然に現れます。1段目に1個、2段目に2個、3段目に3個……と積んでいくと、全部で「三角数」個の点になります。マウスを動かして を変えてみましょう。
var n, total, row, col, dotR, ox, oy, spacing;
function loop() {
ctx.clearRect(0, 0, W, H);
n = Math.max(1, Math.min(15, Math.round((mx / W) * 14) + 1));
total = n * (n + 1) / 2;
dotR = Math.min(12, Math.floor(260 / (n * 1.8)));
spacing = dotR * 2.5;
ox = W / 2;
oy = 40;
var rowCount = 0;
for (row = 1; row <= n; row++) {
var rowY = oy + (row - 1) * spacing;
var rowStartX = ox - (row - 1) * spacing / 2;
for (col = 0; col < row; col++) {
var cx = rowStartX + col * spacing;
var t = (rowCount / (total - 1 || 1));
var red = Math.round(96 + t * 159);
var grn = Math.round(165 - t * 35);
var blu = Math.round(250 - t * 100);
ctx.fillStyle = 'rgb(' + red + ',' + grn + ',' + blu + ')';
ctx.beginPath();
ctx.arc(cx, rowY, dotR, 0, Math.PI * 2);
ctx.fill();
rowCount++;
}
// row label
ctx.fillStyle = '#94a3b8';
ctx.font = '11px monospace';
ctx.textAlign = 'right';
ctx.fillText(row, ox - (row - 1) * spacing / 2 - dotR - 4, rowY + 4);
}
ctx.fillStyle = '#fbbf24';
ctx.font = '15px monospace';
ctx.textAlign = 'center';
ctx.fillText('n = ' + n + ' Σk = ' + n + '×' + (n+1) + '/2 = ' + total, W/2, 300);
requestAnimationFrame(loop);
}
loop(); 公式2:Σk² = n(n+1)(2n+1)/6(正方数の和)
「(k の二乗)」とは、一辺が の正方形の面積です。、、……と、正方形を1段ずつ大きくしていくイメージです。
これらの面積を全部足すと、積み重なった正方形の塔ができます——これが正方錐(四角錐)のような立体の体積に対応しています。
分母が「6」なのが少し覚えにくいですが、「 は必ず偶数になるので、6で割り切れる」と覚えると安心です。
のとき: ✓
var n, i, squareSize, ox, oy, maxSize;
function loop() {
ctx.clearRect(0, 0, W, H);
n = Math.max(1, Math.min(10, Math.round((mx / W) * 9) + 1));
maxSize = n;
var total = n * (n + 1) * (2 * n + 1) / 6;
var scale = Math.min(18, Math.floor(240 / (n * 1.5)));
ox = W / 2;
oy = 280;
// draw stacked squares side by side, isometric style
for (i = n; i >= 1; i--) {
squareSize = i * scale;
var xPos = ox - squareSize / 2;
var stackH = 0;
for (var j = 1; j <= n; j++) { if (j < i) stackH += j * scale; }
var yPos = oy - i * scale - stackH;
var t = (i - 1) / (n - 1 || 1);
var red = Math.round(59 + t * 196);
var grn = Math.round(130 + t * 70);
var blu = Math.round(246 - t * 100);
ctx.fillStyle = 'rgb(' + red + ',' + grn + ',' + blu + ')';
ctx.fillRect(xPos, yPos, squareSize, squareSize);
ctx.strokeStyle = '#0d1117';
ctx.lineWidth = 1;
ctx.strokeRect(xPos, yPos, squareSize, squareSize);
ctx.fillStyle = '#fff';
ctx.font = Math.max(9, scale - 2) + 'px monospace';
ctx.textAlign = 'center';
if (squareSize > 16) {
ctx.fillText(i + '²=' + (i*i), ox, yPos + squareSize / 2 + 4);
}
}
ctx.fillStyle = '#fbbf24';
ctx.font = '14px monospace';
ctx.textAlign = 'center';
ctx.fillText('n=' + n + ' Σk² = ' + n + '×' + (n+1) + '×' + (2*n+1) + '/6 = ' + total, W/2, 308);
requestAnimationFrame(loop);
}
loop(); 公式3:Σk³ = [n(n+1)/2]²(三角数の平方)
ここからが最も驚くべき公式です——立方数(1³, 2³, 3³, …)の和が、自然数の和(1+2+3+…)の2乗にぴったり一致します!
「立方数の和 = 三角数の2乗」——一見なんの関係もなさそうな二つがイコールになるのが、数学の面白いところです。
のとき: ✓
実際にいくつか確認してみると信じやすくなります:
| 1 | 1 | 1 |
| 2 | 9 | 9 |
| 3 | 36 | 36 |
| 4 | 100 | 100 |
| 5 | 225 | 225 |
まとめ表
これらの公式を一覧にまとめます。どれも「毎回1つずつ計算するのではなく、 を代入するだけで答えが出る」のがポイントです——たとえばコンピュータのプログラムで「ループが 回回るとき、全部で何回の操作か」を解析するときに大活躍します。
| 公式 | 式 | 計算量 |
|---|---|---|
これらの公式はアルゴリズムの計算量解析(ループが 回回るとき、合計で何回の操作か)でも頻繁に使われます。
応用:Σ の分解
複雑な和も の線形性と上記の公式で計算できます。「展開してから、それぞれ公式を使う」という手順です。
まとめ
- Σ 記号:数列の和を「 が○から○まで動くとき」とコンパクトに書く記法。長い和を省略できる便利なツール
- 三角数:——三角形に点を並べると自然に出てくる数。ガウスの計算トリックと同じ
- 正方数の和:——正方形(面積 )を積み重ねた塔の総面積
- 立方数の和:——三角数の2乗という驚くべき美しい関係
- これらは数学的帰納法で厳密に証明できる(第5回で扱います)
次回は漸化式——数列を「前の項から次の項を作る規則」で定義する方法を学びます。