魔法学校出張版

「せんせー!」
「どうした?」
「数式は調べたんですが、何やってるんだかさっぱり判りません」
「高校の頃、数学は?」
「一通りやりました。あんまり得意じゃなかったですけど」
「どれ、式見せて」
X_k = \sum_{n=0}^{N-1} x_n \cos\!\left\{\frac{\pi}{N} \left(n+\frac{1}{2}\right) k \right\}
「数列って、高校でやった?」
「聞いたことないです」
「じゃ、シグマ」
「たぶんないと思います」
「コサインは?」
三角関数ですよね」
「x,y,rで表すとどこ?」
「んー、y?」
「惜しい。x/r。y/rはサインね。じゃ、順にいこうか」
X_k
「これは、『複数個ある変数Xのk番目』って意味。C言語的に書くとX[k]」
「あ、配列だったんですか」
「そ。配列変数は、Cよりもっと古い、『Formula Translator:数式変換器』通称Fortranという言語で使われ始めた表現ね」
「判りました。この場合=は代入でいいですね」
「そう。次」
\sum_{n=0}^{N-1}
「これは、『ループ変数nを初期値0からN-1まで繰り返して足し合わせる』の意味」
「あ、forループ」
「そうそう。forループは基本的には配列の列挙ぐらいにしか使わないって話をしたと思うけど、まさにこれ。ちなみにCで書くとfor(n=0;n<=(N-1);n++)と≦になるんで注意ね。これも、Fortranではそのまま書いてたの」
「あとはその応用ですね」
「そだね。実際にはkもXの個数分列挙する必要があるから、二重ループである必要がある」
「ここもfor(k=0;k<=(N-1);k++)ですね」
「判ってきたね。コンピュータは元々数式を計算するために作られたものなので、その頃の名残がC言語にも残ってるんだわ」


それにしても、数列もシグマもやらないとは……昭和は遠くなったなー(当時は数学IIで文系の人でも必修でした)。