반복

Iteration

반복은 (가능성이 있는) 결과의 시퀀스를 생성하기 위한 프로세스의 반복입니다.프로세스의 각 반복은 단일 반복이며, 각 반복의 결과가 다음 반복의 시작점이 됩니다.

수학과 컴퓨터 과학에서 반복은 알고리즘의 표준 요소이다(재귀의) 알고리즘의 표준 요소이다.

수학에서

수학에서 반복함수를 반복하는 과정, 즉 함수를 반복적으로 적용하는 과정을 참조할 수 있으며, 하나의 반복으로부터의 출력을 다음 반복에 대한 입력으로 사용할 수 있다.단순해 보이는 기능을 반복하면 복잡한 동작과 어려운 문제가 발생할 수 있습니다.예를 들어 Collatz 추측과 저글러 시퀀스를 참조하십시오.

수학에서 반복의 또 다른 용도는 특정 수학 문제에 대한 대략적인 수치적 해법을 도출하는 데 사용되는 반복적인 방법이다.뉴턴의 방법은 반복 방법의 한 예이다.숫자의 제곱근을 수동으로 계산하는 것은 일반적인 용도와 잘 알려진 예입니다.

컴퓨팅의 경우

컴퓨팅에서 반복은 컴퓨터 프로그램 내의 스테이트먼트 블록에서 정의된 수의 반복을 표시하는 기술입니다.그 스테이트먼트의 블록은 반복되고 있다고 합니다.컴퓨터 사이언티스트는, 그 스테이트먼트의 블록을 「반복」이라고 부를 수도 있습니다.

다음 의사코드는 반복의 예입니다.for 루프의 대괄호 사이의 코드 행은 3회 반복됩니다.

a = 1 ~ 3 i경우 0 // 루프 3회 {a = a + i // i의 전류 값을 a } 인쇄 a // 숫자 6이 인쇄됩니다(0 + 1; 1 + 2; 3 + 3).

원하는 기능을 수행하기 위해 프로그램의 다른 부분의 값을 괄호로 묶은 문 밖에서 사용하는 것이 허용되며 종종 필요합니다.위의 예에서 코드 행은 i의 값을 사용하여 증가합니다.

재귀와의 관계

알고리즘 상황에서는 재귀와 반복을 동일한 효과로 사용할 수 있습니다.주된 차이점은 재귀는 동작을 몇 번 반복해야 하는지에 대한 사전 지식 없이 솔루션으로 채택될 수 있지만, 반복이 성공하려면 사전 지식이 필요하다는 것입니다.

기능 프로그래밍 언어라고 알려진 일부 유형의 프로그래밍 언어는 for 루프와 같이 명시적인 반복을 위해 문 블록을 설정하지 않도록 설계되었습니다.대신 이러한 프로그래밍 언어는 재귀만을 사용합니다.실행 코드 블록은 미리 정의된 횟수만큼 반복되는 코드 블록을 호출하는 대신 수행해야 할 작업을 여러 개의 개별 조각으로 "분할"하고, 그 후 코드 블록은 각 개별 조각에서 스스로 실행한다.각 작업은 가능한 한 "작업량"이 적을 때까지 반복적으로 분할되며, 이때 알고리즘은 이 작업을 매우 빠르게 수행합니다.그런 다음 알고리즘이 "역전"하여 조각들을 완전한 전체로 재구성합니다.

재귀의 전형적인 예는 병합 정렬과 같은 목록 정렬 알고리즘입니다.Marge sort recursive 알고리즘은 먼저 목록을 연속된 쌍으로 반복적으로 분할합니다.그 후 각 쌍이 정렬되고 다음으로 각 연속된 쌍이 정렬되며 목록의 요소가 원하는 순서로 정렬될 때까지 계속됩니다.

다음 코드는 이전 제목 아래의 의사 코드와 동일한 결과를 출력하는 Scheme 프로그래밍 언어의 재귀 알고리즘의 예입니다.

(허락하다반복하다 ((i 1) (a 0))   (한다면(<=>i 3)     (반복하다 (+i 1) (+a i))     (표시a))) 

기타 용어

객체 지향 프로그래밍에서, 반복기는 다양한 데이터 구조 범위에 대해 동일한 방식으로 반복이 실행되도록 보장하는 객체이며, 이후 코드화 시도에서 시간과 노력을 절약합니다.특히, 반복기는 이러한 데이터 구조의 각 노드에서 종종 미리 정의된 순서로 동일한 종류의 작업을 반복할 수 있도록 합니다.

반복은 반복 중에 데이터를 받아들이거나 거부하는 추상화입니다.

교육

일부 교육학 학교에서는, 보다 정확한 결과가 발견되거나 학생이 기술적 기술을 습득할 때까지, 반복은 학생들이 실험, 평가 또는 프로젝트를 반복하도록 가르치거나 지도하는 과정을 묘사하기 위해 사용됩니다.이 생각은 "연습이 완벽을 만든다"는 옛 속담에서 찾을 수 있다.특히, "반복적"은 "사람들이 아이디어를 재방문하고 그 [1]함의를 비판적으로 성찰할 수 있는 여러 기회를 가능하게 하는 순환적 조사를 수반하는 학습과 발전의 과정"으로 정의된다.

컴퓨터나 수학과는 달리, 교육적인 반복은 미리 정해져 있지 않습니다.대신, 몇 가지 외부 기준(종종 테스트)에 따라 성공하기 전까지 반복됩니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Helen Timperley, Aaron Wilson, Heather Barrar, and Irene Fung. "Teacher Professional Learning and Development: Best Evidence Synthesis Iteration [BES]" (PDF). OECD. p. 238. Retrieved 4 April 2013.{{cite web}}: CS1 maint: 작성자 파라미터 사용(링크)