反復とは、ある行為や処理を繰り返すことを指し、通常は結果の系列を生み出します。この語は日常語では単なる繰り返し一般に使われ、技術分野では、停止条件に達するまで同じ手順や操作を何度も適用することを意味します。
日常的な例
日常会話では、「同じことをもう一度言わなければならないの?」というように、自分の発言を繰り返す場面があります。このときの一回一回の繰り返しが反復です。つまり、同じ型の行為が連なったとき、その各回が一つの反復にあたります。
コンピュータプログラミングとアルゴリズム
コンピュータ科学では、反復は通常、ループ本体を一回実行することを意味します。for ループ、while ループ、do-while ループのような代表的なループ構文は、同じ命令を繰り返し実行することでプログラムを進めます。毎回まったく同じデータとは限らず、状態が少しずつ変わることもあります。反復回数は、ループ条件、カウンター、break 文などによって制御され、終了条件を適切に設定しなければ無限ループを招くおそれがあります。
また、プログラマは問題解決の方法を説明するときにも、より広い意味で反復という語を使います。問題を一度で解くのではなく、同じ手順を何度も適用して結果を少しずつ改善していく考え方です。たとえば、反復的数値手法や逐次近似アルゴリズムがこれに当たります。
数学とフラクタル幾何学
数学では、反復は関数を初期値に繰り返し適用することを指し、x、f(x)、f(f(x)) のような数列を生み出します。多くの力学系や数値手法は、こうした系列の振る舞いを調べることで研究されます。
フラクタルの構成では、規則や変換を繰り返し適用して、フラクタル形状の近似を次々に作り出します。この種の過程の有名な例はフラクタル幾何学の研究に見られ、写像を反復すると、非常に複雑で自己相似的な構造が生まれることがあります。
関連する概念
- 反復と再帰:どちらも繰り返しを含みます。再帰は、自分自身を参照する関数呼び出しによって繰り返しを表し、反復はループの中で文を明示的に繰り返します。多くの再帰アルゴリズムは反復型に変換できます。
- 反復回数:実用的なプログラムや解析では、何回反復が行われたかを追跡して性能を測ったり、停止の判断に用いたりします。
- 反復的設計:工学や製品開発では、反復は設計、テスト、改良を繰り返すサイクルを指すことがよくあります。