207 matches
-
prin recursivitate. Funcțiile recursive se autoapelează, permițând efectuarea unei operații în mod repetat. Recursivitatea poate necesita reținerea unei stive, dar tail recursion poate fi recunoscută și optimizată de compilator prin transformarea ei într-un cod similar cu cel utilizat pentru iterații în limbajele imperative. Standardul limbajului Scheme necesită recunoașterea de către implementări și optimizarea tail recursion. Șabloanele de recursivitate des întâlnite pot fi luate în considerare prin utilizarea de funcții de ordin superior, catamorfismele și anamorfismele fiind cele mai evidente exemple. Asemenea
Programare funcțională () [Corola-website/Science/308128_a_309457]
-
baza algoritmului este de a identifica la fiecare pas un drum de creștere care conține un număr minim de arce. După cum vom arăta în continuare, o astfel de alegere ne asigură că se vor efectua cel mult Θ(M • N) iterații. Fiecare drum de creștere conține, așa cum rezultă din definiție, cel puțin un arc critic (arcul care dă valoarea diurnului). Să presupunem că arcul (i, j) apare pentru prima dată ca arc critic într-un drum de creștere în momentul în
Algoritmul Edmonds-Karp () [Corola-website/Science/304639_a_305968]
-
colecții de metode. Clasele pot mixa (include) un modul și dobândi astfel, fara nici un efort, toate metodele acestuia. De examplu, orice clasă care implementează metoda each poate mixa modulul Enumerable, care adaugă o grămadă de metode care folosesc each pentru iterație.<br> class MyArray end În general, Rubyiști văd aceasta drept o cale mult mai limpede decât moștenirea multiplă, care este complexă și poate fi prea restrictivă. <br> Deși Ruby adesea folosește foarte puțină punctuație și preferă îndeosebi cuvinte cheie in
Ruby () [Corola-website/Science/303539_a_304868]
-
O mare realizare în acest sens a venit în 1975, când Richard Brent și Eugene Salamin au descoperit independent algoritmul Brent-Salamin, algoritm pur aritmetic care dublează numărul de zecimale exacte la fiecare pas. Algoritmul constă în inițializarea și apoi în iterații efectuate până când "a" și "b" sunt suficient de apropiate. Atunci, estimarea lui π este dată de Folosind această schemă, 25 de iterații ajung pentru a atinge 45 de milioane de zecimale exacte. Un algoritm similar face acuratețea de 4 ori
Pi () [Corola-website/Science/304110_a_305439]
-
pur aritmetic care dublează numărul de zecimale exacte la fiecare pas. Algoritmul constă în inițializarea și apoi în iterații efectuate până când "a" și "b" sunt suficient de apropiate. Atunci, estimarea lui π este dată de Folosind această schemă, 25 de iterații ajung pentru a atinge 45 de milioane de zecimale exacte. Un algoritm similar face acuratețea de 4 ori mai mare la fiecare pas și a fost descoperit de Jonathan și Peter Borwein. Metodele au fost utilizate de Yasumasa Kanada și
Pi () [Corola-website/Science/304110_a_305439]
-
formula 24 O aplicație frecventă constă în a găsi formula 18 pornind de la formula 19. Este suficient atunci să se itereze expresia: formula 27 Dacă se utilizează o valoare inițială formula 28, convergența este garantată, și este întotdeauna foarte rapidă (zece cifre semnificative în patru iterații). Considerăm în continuare cazul unui sistem format din două corpuri. În acest caz, traiectoria fiecăruia dintre corpuri, considerată în sistemul de referință în care centrul de masă al sistemului este fix, poate fi: Într-o primă aproximație, traiectoria unui corp
Orbită (astronomie) () [Corola-website/Science/304248_a_305577]
-
în urma înmulțirii, iar formula 7 sunt elementele de pe același vector înaintea aplicării pasului. Rezultatul are proprietatea că fiecare element al său depinde de toate elementele de pe coloana stării dinaintea efectuării pasului. Combinat cu pasul ShiftRows, acest pas asigură că după câteva iterații, fiecare octet din stare depinde de fiecare octet din starea inițială (tabloul populat cu octeții mesajului în clar). Acești doi pași, împreună, sunt principala sursă de difuzie în algoritmul Rijndael. Coeficienții polinomului "a(x)" sunt toți 1, 2 și 3
AES () [Corola-website/Science/312569_a_313898]
-
decriptări, deci criptarea este folosită mai des. Pasul AddRoundKey este pasul în care este implicată cheia. El constă într-o simplă operație de „sau” exclusiv pe biți între stare și cheia de rundă (o cheie care este unică pentru fiecare iterație, cheie calculată pe baza cheii secrete). Operația de combinare cu cheia secretă este una extrem de simplă și rapidă, dar algoritmul rămâne complex, din cauza complexității calculului cheilor de rundă ("Key Schedule"), precum și a celorlalți pași ai algoritmului. Cheia de rundă este
AES () [Corola-website/Science/312569_a_313898]
-
algoritm lucrează pe cheia algoritmului, de lungime "Nk" cuvinte de 4 octeți (4, 6 sau 8, conform standardului), populând un tabel de formula 8 cuvinte, "Nb" fiind numărul de cuvinte al blocului (în versiunea standardizată, 4), iar Nr numărul de runde (iterații), dependent de lungimea cheii. Algoritmul de planificare a cheilor folosește transformarea "SubWord", care este o substituție a octeților identică cu cea din pasul "SubBytes". "RotWord" este o rotație ciclică la stânga cu un octet a octeților dintr-un cuvânt. Cu "Rcon
AES () [Corola-website/Science/312569_a_313898]
-
cheie standardizate, 128, 192 și 256 biți. Informațiile "TOP SECRET" (cel mai înalt nivel de clasificare) pot fi criptate doar cu chei pe 256 biți. Atacul cel mai realizabil împotriva AES este îndreptat împotriva variantelor Rijndael cu număr redus de iterații. AES are 10 iterații la o cheie de 128 de biți, 12 la cheie de 192 de biți și 14 la cheie de 256 de biți. La nivelul anului 2008, cele mai cunoscute atacuri erau accesibile la 7, 8, respectiv
AES () [Corola-website/Science/312569_a_313898]
-
și 256 biți. Informațiile "TOP SECRET" (cel mai înalt nivel de clasificare) pot fi criptate doar cu chei pe 256 biți. Atacul cel mai realizabil împotriva AES este îndreptat împotriva variantelor Rijndael cu număr redus de iterații. AES are 10 iterații la o cheie de 128 de biți, 12 la cheie de 192 de biți și 14 la cheie de 256 de biți. La nivelul anului 2008, cele mai cunoscute atacuri erau accesibile la 7, 8, respectiv 9 iterații pentru cele
AES () [Corola-website/Science/312569_a_313898]
-
are 10 iterații la o cheie de 128 de biți, 12 la cheie de 192 de biți și 14 la cheie de 256 de biți. La nivelul anului 2008, cele mai cunoscute atacuri erau accesibile la 7, 8, respectiv 9 iterații pentru cele trei lungimi ale cheii.
AES () [Corola-website/Science/312569_a_313898]
-
restul. Operația modulo dă restul împărțirii a două numere; astfel, Restul este echivalent cu clasa de congruență din aritmetica modulară. Implementările algoritmului se pot exprima în pseudocod. De exemplu, versiunea bazată pe împărțire trebuie să fie programată ca La îneputul iterației "k", variabila "b" deține ultimul rest "r", iar variabila "a" deține predecesorul acesteia, "r". Pasul "b" := "a" mod "b" este echivalent cu formula recursivă de mai sus "r" ≡ "r" mod "r". Variabila "t" reține valoarea lui "r" în timp ce se calculează
Algoritmul lui Euclid () [Corola-website/Science/312202_a_313531]
-
variabila "a" deține predecesorul acesteia, "r". Pasul "b" := "a" mod "b" este echivalent cu formula recursivă de mai sus "r" ≡ "r" mod "r". Variabila "t" reține valoarea lui "r" în timp ce se calculează următorul rest "r". La sfârșitul acestei bucle de iterații, variabila " b" va păstra restul "r", iar variabila "a" va reține predecesorul, "r". În versiunea pe bază de scădere, definită de Euclid, calculul restului ("b" = "a" mod "b") este înlocuit cu scăderea repetată. Variabilele "a" și "b" rețin alternativ resturile
Algoritmul lui Euclid () [Corola-website/Science/312202_a_313531]
-
bază de scădere, definită de Euclid, calculul restului ("b" = "a" mod "b") este înlocuit cu scăderea repetată. Variabilele "a" și "b" rețin alternativ resturile anterioare "r" și "r". Se presupune că "a" este mai mare ca "b" la începutul unei iterații; atunci "a" este egal cu "r", fiindcă "r" > "r". Pe parcursul acestei bucle, "a" este redus cu multipli ai restului anterior "b" până când "a" este mai mic ca "b". Atunci "a" este următorul rest "r". Atunci "b" este redus cu multipli
Algoritmul lui Euclid () [Corola-website/Science/312202_a_313531]
-
unde "n" este dimensiunea vectorilor. Alți algoritmi de ortogonalizare folosesc transformările Householder sau rotațiile Givens. Algoritmii cu transformări Householder sunt mai stabili decât procedeul Gram-Schmidt stabilizat. Pe de altă oarte, procedeul Gram-Schmidt dă al formula 30-lea vector ortogonalizat după a formula 30-a iterație, în vreme ce tehnica cu reflectorii Householder produce toți vectorii doar la sfârșit. Aceasta face ca procedeul Gram-Schmidt să fie singurul aplicabil în metodele iterative cum ar fi iterația Arnoldi.
Procedeul Gram–Schmidt () [Corola-website/Science/309782_a_311111]
-
de altă oarte, procedeul Gram-Schmidt dă al formula 30-lea vector ortogonalizat după a formula 30-a iterație, în vreme ce tehnica cu reflectorii Householder produce toți vectorii doar la sfârșit. Aceasta face ca procedeul Gram-Schmidt să fie singurul aplicabil în metodele iterative cum ar fi iterația Arnoldi.
Procedeul Gram–Schmidt () [Corola-website/Science/309782_a_311111]
-
observă că "Q"′ este mai mică decât "Q". Deoarece este de dorit ca ea să opereze asupra lui "Q""A" în loc de " A"′ trebuie să fie extinsă spre sus și stânga, completând-o cu un 1, sau în general: După formula 59 iterații ale acestui proces, formula 60, este o matrice superior triunghiulară. Deci, cu formula 63 is a QR decomposition of formula 64. Aceasta metodă are o stabilitate numerică superioară metodei Gram-Schmidt descrisă mai sus. Tabelul următor dă numărul de operații în pasul "k" al
Descompunerea QR () [Corola-website/Science/309783_a_311112]
-
începând cu formula 9, care ori tinde către infinit, ori rămâne în interiorul unui disc de rază finită. Mulțimea lui Mandelbrot este definită ca mulțimea punctelor formula 5 astfel încât șirul anterior "nu" tinde către infinit. Mai formal, dacă formula 11 denotă a "n"-a iterație a funcției formula 8 (formula 8 compusă cu ea de "n" ori) mulțimea lui Mandelbrot este submulțimea planului complex dată de Matematic, mulțimea lui Mandelbrot este doar o mulțime de numere complexe. Un număr complex formula 5 dat aparține sau nu lui formula 1
Mulțimea lui Mandelbrot () [Corola-website/Science/306349_a_307678]
-
funcționează, dar are ca rezultat execuția prea deasă a liniei 5. Într-un caz extrem, sau în cazul unei funcții hash foarte slabe, cum ar fi cea constantă, linia 5 ar putea fi executată chiar de "n" ori, la fiecare iterație. Deoarece ea necesită un timp Θ(m), întregul algoritm durează Θ(mn). Cheia performanței algoritmului Rabin-Karp este calculul eficient al funcției hash a subșirurilor succesive de text. O funcție populară și eficientă de hash rulant tratează fiecare subșir ca un
Algoritmul Rabin-Karp () [Corola-website/Science/313148_a_314477]
-
și mulți alții în secolul XX. Tradițional, analiza complexă, iar în particular teoria aplicațiilor conforme, are numeroase aplicații în fizică. În timpurile moderne a devenit foarte populară datorită unei dezvoltări a dinamicii complexe și a imaginilor cu fractali produse de iterațiile unor funcții olomorfe. O alta aplicație importantă a analizei complexe este teoria corzilor. O funcție complexă este o funcție în care variabila independentă și variabila dependentă sunt ambele numere complexe. Altfel, o funcție complexă este o funcție a cărui domeniu
Analiză complexă () [Corola-website/Science/314283_a_315612]
-
de forma următoare: Corpul unei funcții este de forma următoare: Prelucrările efectuate de un program sunt descrise cu ajutorul instrucțiunilor. Fiecare instrucțiune trebuie încheiată cu separatorul punct și virgulă (;). Instrucțiunile limbajului C pot fi împărțite în următoarele categorii: Expresii, Blocuri, Selecții, Iterații, Salturi. O instrucțiune expresie este alcătuită dintr-o expresie urmată de punct și virgulă. Operațiile realizate de aceste instrucțiuni se fac simțite datorită efectelor ce se concretizează prin apeluri de funcții și modificarea valorilor unor variabile. <br> "Exemplu de instrucțiuni
Sintaxa limbajului C () [Corola-website/Science/296568_a_297897]
-
în buclă, oferă două elemente necesare în majoritatea situațiilor: inițializare și actualizare. <br>Sintaxa instrucțiunii for: <br>- "expresia initializare" constituie inițializarea buclei și se evaluează o singură dată. <br>- "expresia actualizare" trebuie să fie de tip scalar și este evaluată înaintea fiecărei iterații. Valoarea acestei expresii este interpretată ca și condiție de rămânere în buclă. <br>- În interiorul buclei se realizează, la fiecare parcurgere, două operațiuni: se execută prelucrările specificate prin "instrucțiune", după care se evaluează "expresie act". <br>Oricare dintre expresiile instrucțiunii "for" (sau
Sintaxa limbajului C () [Corola-website/Science/296568_a_297897]
-
și hărți Karnaugh, au fost inventate în 1950 de Maurice Karnaugh, un inginer în telecomunicații de la Laboratoarele Bell pentru a facilita minimizarea expresiilor algebrice booleene. În mod normal, pentru minimizarea acestor expresii este nevoie de calcule complicate, folosind formule și iterații, pe când Diagramele Karnaugh sunt mult mai simplu și mai rapid de utilizat pentru că folosesc capabilitățile creierului uman de recunoaștere a formelor pentru a decide care termeni să fie combinați pentru a găsi expresiile cele mai simple. Diagramele Karnaugh pot fi
Diagramă Karnaugh () [Corola-website/Science/297452_a_298781]
-
inovare și totodată integrarea în procesul de dezvoltare a furnizorilor, clienților și partenerilor. Integrarea în interiorul firmei are loc în amonte cu furnizorii principali și în aval cu clienții activi (solicitanți ai produselor firmei). Modelele celei de-a patra generații relevă iterații complexe, bucle de feedback și relații reciproce între marketing, C-D, operațiuni, distribuție. Procesul de inovare recunoaște acum rolul care poate fi jucat de alianțe cu alte firme și cu competitori. A cincea generație de modele, apărute în anii '90
Modele ale procesului de inovare () [Corola-website/Science/317627_a_318956]