InfoBook.ro ← Harta anului
Modul 03a · Generarea de secvențe
Modul 03a · Conținut 2.3

Construim secvențe, termen cu termen

De la secvențe simple cu proprietăți date, la termeni ai unor expresii matematice, până la șirul lui Fibonacci — rețeta e mereu aceeași: o buclă care construiește următorul termen după o regulă clară.

🎯 Obiectiv 1Generezi toate valorile dintr-un interval care respectă o proprietate (ex.: prime).
🎯 Obiectiv 2Calculezi termeni ai unor expresii cu un acumulator (sumă, produs).
🎯 Obiectiv 3Stăpânești șirurile recurente — Fibonacci cu doar două variabile.
1

Secvențe cu proprietăți date

Rețeta: parcurgi intervalul cu o buclă și testezi proprietatea pentru fiecare valoare. Exemplul-rege: numerele prime până la n.

n =
Apasă „Pas" — fiecare candidat e testat pe rând. 👆
Observă eficiența (moștenire din Modulul 03): testul de primalitate merge doar până la √n — divizor * divizor <= n — nu până la n − 1. Cât de enormă e diferența ai văzut la „Cursa celor două metode", în Modulul 03, secțiunea 5.
🎯 pbInfo #374 — Numere prime până la n ↗
2

Termeni ai unor expresii matematice

Când formula depinde de indice — 1 + 1/2 + 1/3 + … + 1/n — folosești un acumulator actualizat la fiecare pas.

n =
Fiecare pas adaugă termenul 1/i la suma parțială. 👆
Capcană C++: scrie suma += 1.0 / i; — cu 1.0! Altfel 1/i e împărțire întreagă și dă 0 pentru orice i > 1 (bug-ul clasic din Modulul 01).
🎯 pbInfo #2949 — Media armonică ↗
3

Generatorul tău — alege regula

Aceeași rețetă, altă regulă. Alege una și privește secvența născându-se.

termeni =
alege o regulă 👆
Tema de gândire: pentru fiecare regulă din listă, scrie bucla C++ care o generează. Toate încap în 3–4 rânduri — dacă îți ia mai mult, recitește rețeta.
🎯 pbInfo #348 — Afișarea puterilor ↗
4

Șiruri recurente: Fibonacci

Un șir recurent definește fiecare termen prin cei dinainte: f(n) = f(n−1) + f(n−2), cu f(0)=0, f(1)=1. Nu-ți trebuie vector — doar două variabile care „alunecă"!

termeni =
raportul f(n)/f(n−1) → converge spre φ = 1,618033… (numărul de aur)
a și b „alunecă" pe șir: a = termenul curent, b = următorul. 👆
De ce doar două variabile? Pentru următorul termen ai nevoie DOAR de ultimii doi. Trecutul mai vechi nu contează — deci nu-l păstrăm. Gândirea asta („ce e minimul de memorie necesar?") e eficiență pură.

✨ Numărul de aur φ — matematica ascunsă în șir

Împarte fiecare termen la cel dinaintea lui: rezultatul se apropie tot mai mult de o constantă celebră, numărul de aur φ.

φ = (1 + √5) / 2 ≈ 1,6180339887…

φ apare peste tot în natură: spirala melcului nautilus, semințele de floarea-soarelui, petalele florilor, brațele galaxiilor. Nu e coincidență — e cea mai „economică" proporție de creștere.

Nature by Numbers▶
Nature by NumbersCristóbal Vila · Fibonacci, φ și spirala de aur în natură (~3 min) · click pentru a deschide pe YouTube ↗

Urmărește cum aceleași numere pe care le generezi în cod construiesc cochilia melcului și floarea-soarelui. 🌻

🎯 pbInfo #255 — Șirul lui Fibonacci ↗
5

Fișa de sinteză

Generarea de secvențe, pe scurt.

Rețeta universală: buclă peste interval + test de proprietate SAU acumulator actualizat.
Proprietăți: pentru fiecare x din interval, verifici (ex. prim cu d·d ≤ x) și afișezi dacă trece.
Expresii: suma += 1.0/i — atenție la împărțirea întreagă din C++!
Recurențe: f(n) = f(n−1) + f(n−2) — păstrezi doar ultimii doi termeni, în a și b.
Șablonul Fibonacci: urm = a + b; a = b; b = urm; — ordinea atribuirilor contează!
Raportul f(n)/f(n−1) → φ ≈ 1,618 — numărul de aur, dovada că matematica se ascunde în cod.
Exersează pe pbinfo.ro la categoria „Generarea sistematică a elementelor unei liste" — plus problema pusă sub fiecare secțiune de mai sus (#374, #2949, #348, #255).
← anteriorModul 03 · Prelucrarea numerelor urmează →Modul 04 · Vectori — bază