Iteration - Iteration
Iteration er gentagelse af en proces for at generere en (muligvis ubegrænset) sekvens af resultater. Hver gentagelse af processen er en enkelt iteration, og resultatet af hver iteration er derefter udgangspunktet for den næste iteration.
I matematik og datalogi er iteration (sammen med den relaterede teknik for rekursion ) et standardelement i algoritmer .
I matematik
I matematik kan iteration referere til processen med at iterere en funktion , det vil sige at anvende en funktion gentagne gange, ved at bruge output fra en iteration som input til den næste. Iteration af tilsyneladende enkle funktioner kan producere kompleks adfærd og vanskelige problemer - se eksempler på Collatz -formodninger og jonglere -sekvenser for eksempler .
En anden brug af iteration i matematik er i iterative metoder, der bruges til at producere omtrentlige numeriske løsninger på visse matematiske problemer. Newtons metode er et eksempel på en iterativ metode. Manuel beregning af et tals kvadratrod er en almindelig anvendelse og et velkendt eksempel.
I databehandling
I computing er iteration teknikken, der markerer ud af en blok af udsagn inden for et computerprogram for et defineret antal gentagelser. Den blok af udsagn siges at være gentaget ; en datavidenskabsmand kan også henvise til denne blok af udsagn som en "iteration".
Den pseudokode nedenfor er et eksempel på iteration; kodelinjen mellem parenteserne i for -loop vil "gentage" tre gange:
a = 0
for i from 1 to 3 // loop three times
{
a = a + i // add the current value of i to a
}
print a // the number 6 is printed (0 + 1; 1 + 2; 3 + 3)
Det er tilladt og ofte nødvendigt at bruge værdier fra andre dele af programmet uden for den parenteserede sæt af sætninger for at udføre den ønskede funktion. I eksemplet ovenfor bruger kodelinjen værdien af i, når den øges.
Forhold til rekursion
I algoritmiske situationer kan rekursion og iteration anvendes med samme effekt. Den primære forskel er, at rekursion kan bruges som en løsning uden forudgående viden om, hvor mange gange handlingen skal gentage sig, mens en vellykket iteration kræver den forudgående viden.
Nogle typer programmeringssprog, kendt som funktionelle programmeringssprog , er designet sådan, at de ikke opretter sætninger til eksplicit gentagelse som med for -loop. I stedet bruger disse programmeringssprog udelukkende rekursion . I stedet for at kalde en kodeblok, der skal gentages et foruddefineret antal gange, "opdeler" den udførende kodeblok i stedet det arbejde, der skal udføres i et antal separate stykker, hvorefter kodeblokken udfører sig på hvert enkelt stykke. Hvert stykke arbejde vil blive opdelt gentagne gange, indtil "mængden" af arbejdet er så lille som det overhovedet kan være, hvorefter algoritmen vil udføre det arbejde meget hurtigt. Algoritmen "vender" derefter og samler brikkerne til en komplet helhed.
Det klassiske eksempel på rekursion er i listesorteringsalgoritmer som f.eks. Flette sortering . Rekursiv flette sorteringsalgoritme vil først gentagne gange opdele listen i på hinanden følgende par; hvert par bliver derefter bestilt, derefter hvert på hinanden følgende par og så videre, indtil elementerne på listen er i den ønskede rækkefølge.
Koden herunder er et eksempel på en rekursiv algoritme i programmeringssproget Scheme , der udsender det samme resultat som pseudokoden under den forrige overskrift.
(let iterate ((i 1) (a 0))
(if (<= i 3)
(iterate (+ i 1) (+ a i))
(display a)))
Anden terminologi
I objektorienteret programmering er en iterator et objekt, der sikrer, at iteration udføres på samme måde for en række forskellige datastrukturer, hvilket sparer tid og kræfter i senere kodningsforsøg. Især giver en iterator mulighed for at gentage den samme slags operation ved hver knude i en sådan datastruktur, ofte i en eller anden foruddefineret rækkefølge.
En iteratee er en abstraktion, der accepterer eller afviser data under en iteration.
Uddannelse
I nogle pædagogiske skoler bruges iterationer til at beskrive processen med at undervise eller guide eleverne til at gentage eksperimenter, vurderinger eller projekter, indtil mere præcise resultater er fundet, eller eleven har mestret den tekniske dygtighed. Denne idé findes i det gamle ordsprog, "Øvelse gør mester." Især er "iterativ" defineret som "lærings- og udviklingsprocessen, der involverer cyklisk undersøgelse, hvilket gør det muligt for flere mennesker at genoverveje ideer og kritisk reflektere over deres implikationer."
I modsætning til computing og matematik er uddannelsesmæssige iterationer ikke forudbestemte; i stedet gentages opgaven, indtil succes ifølge nogle eksterne kriterier (ofte en test) er opnået.