反復

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

反復とは、(おそらく無制限の)結果のシーケンスを生成するためのプロセスの繰り返しです。プロセスの各反復は1回の反復であり、各反復の結果が次の反復の開始点になります。

数学コンピュータサイエンスでは、反復は(関連する再帰手法とともに)アルゴリズムの標準要素です

数学では

数学では、反復とは、関数を反復するプロセス、つまり、ある反復からの出力を次の反復への入力として使用して、関数を繰り返し適用するプロセスを指す場合があります。明らかに単純な関数の反復は、複雑な動作と困難な問題を引き起こす可能性があります。たとえば、コラッツの予想ジャグラー数列を参照してください。

数学における反復の別の使用法は、特定の数学の問題に対する近似数値解を生成するために使用される反復法です。ニュートン法は反復法の一例です。数値の平方根の手動計算は一般的な使用法であり、よく知られている例です。

コンピューティングにおいて

コンピューティングでは、反復とは、コンピュータープログラム内のステートメントのブロックを、定義された回数だけマークアウトする手法です。そのステートメントのブロックは繰り返されると言われています; コンピュータ科学者は、そのステートメントのブロックを「反復」 と呼ぶこともあります。

以下の擬似コードは反復の例です。forループの角かっこの間のコード行は3回「繰り返され」ます。

a = 0
 for  i1 から3 // 3回ループ
{{
    a = a + i // iの現在の値をaに追加します
}
print a                   //数値6が出力されます(0 + 1; 1 + 2; 3 + 3)

目的の機能を実行するために、括弧で囲まれたステートメントのブロックの外側にあるプログラムの他の部分の値を使用することは許容され、多くの場合必要です。上記の例では、コード行はインクリメント時にiの値を使用しています。

再帰との関係

アルゴリズムの状況では、再帰と反復を使用して同じ効果を得ることができます。主な違いは、アクションを何回繰り返す必要があるかについての事前の知識がなくても、再帰をソリューションとして使用できることです。一方、反復を成功させるには、その事前知識が必要です。

関数型プログラミング言語として知られるいくつかのタイプのプログラミング言語は、 forループのように明示的な繰り返しのためにステートメントのブロックを設定しないように設計されています。代わりに、これらのプログラミング言語は再帰のみを使用します。実行中のコードブロックは、事前定義された回数繰り返されるコードのブロックを呼び出すのではなく、実行する作業をいくつかの個別の部分に「分割」し、その後、コードブロックは個々の部分でそれ自体を実行します。各作業は、作業の「量」が可能な限り少なくなるまで繰り返し分割されます。その時点で、アルゴリズムはその作業を非常に迅速に実行します。次に、アルゴリズムは「反転」し、断片を完全な全体に再構成します。

再帰の典型的な例は、マージソートなどのリストソートアルゴリズムです。マージソート再帰アルゴリズムは、最初にリストを連続するペアに繰り返し分割します。次に、各ペアが並べ替えられ、次にペアの連続する各ペアが並べ替えられ、リストの要素が目的の順序になるまで続きます。

以下のコードは、前の見出しの擬似コードと同じ結果を出力する 、 Schemeプログラミング言語の再帰的アルゴリズムの例です。

反復させます((i 1 a 0 ))if <= i 3 反復+ i 1 + a i ))display a )))    
   
        
    

その他の用語

オブジェクト指向プログラミングではイテレータは、さまざまな異なるデータ構造に対して同じ方法で反復が実行されることを保証するオブジェクトであり、後のコーディング試行で時間と労力を節約します。特に、イテレータを使用すると、このようなデータ構造の各ノードで同じ種類の操作を、多くの場合、事前定義された順序で繰り返すことができます。

iterateeは、反復中にデータを受け入れるか拒否する抽象化です

教育

教育学の一部の学校では、より正確な結果が見つかるまで、または生徒が技術的スキルを習得するまで、実験、評価、またはプロジェクトを繰り返すように生徒に教えたり指導したりするプロセスを説明するために反復が使用されます。この考えは、「練習は完璧になる」という古い格言に見られます。特に、「反復的」とは、「循環的な調査を伴う学習と能力開発のプロセスであり、人々がアイデアを再検討し、その意味を批判的に反映するための複数の機会を可能にする」と定義されています。[1]

コンピューティングや数学とは異なり、教育の反復は事前に決定されていません。代わりに、いくつかの外部基準(多くの場合テスト)に従って成功するまで、タスクが繰り返されます。

も参照してください

参考文献

  1. ^ ヘレン・ティンパーリー、アーロン・ウィルソン、ヘザー・バラー、アイリーン・ファン。「教師の専門的な学習と開発:最良の証拠合成反復[BES]」 (PDF)OECDp。238 2013年4月4日取得{{cite web}}:CS1 maint:作成者パラメーターを使用します(リンク