Explică frecvența
Definești frecvența unei valori ca numărul ei de apariții.
Principiu, interpretare și utilizări
Definești frecvența unei valori ca numărul ei de apariții.
Construiești o structură de frecvențe pentru un domeniu mic și cunoscut.
Determini valori cu frecvență maximă și interpretezi frecvențele obținute.
Verifici domeniul, egalitățile și valorile aflate în afara domeniului.
Care este ideea centrală a lecției?
Frecvența unei valori este numărul de apariții ale acelei valori într-o colecție.
O listă de frecvențe păstrează, pentru fiecare valoare dintr-un domeniu, numărul de apariții. Dacă citim valoarea x, incrementăm poziția corespunzătoare: frecventa[x] = frecventa[x] + 1.
Metoda este potrivită în special pentru domenii mici și cunoscute, de exemplu cifrele 0–9 sau notele 1–10. Domeniul trebuie cunoscut pentru dimensionarea structurii.
Dacă frecventa[7] = 4, aceasta nu înseamnă că valoarea este 4. Înseamnă că valoarea 7 apare de 4 ori.
Ce idee trebuie reținută înainte de a aplica algoritmul?
Imaginează-ți 10 căsuțe, câte una pentru fiecare cifră. De fiecare dată când apare cifra 7, crești cu 1 căsuța lui 7.
Șir: 2, 5, 2, 7, 5, 2
Apasă butonul pentru a vedea frecvențele.
Rezultatul va apărea aici.
frecventa = [0] * 10
n = int(input())
for i in range(n):
x = int(input())
frecventa[x] = frecventa[x] + 1
for x in range(10):
print(x, frecventa[x])
Lista are 10 poziții, cu indici 0–9. Toate pozițiile pornesc cu frecvența 0.
frecventa = [0] * 11
n = int(input())
for i in range(n):
nota = int(input())
frecventa[nota] = frecventa[nota] + 1
for nota in range(1, 11):
print(nota, frecventa[nota])
ALGORITM FrecventeCifre
frecventa[0..9] ← 0
citește n
pentru i ← 1,n execută
citește x
frecventa[x] ← frecventa[x] + 1
sfârșit pentru
pentru x ← 0,9 execută
scrie x, frecventa[x]
sfârșit pentru
SFÂRȘIT ALGORITM
ALGORITM MaximFrecventa
maxim ← -1
valoare ← 0
pentru x ← 0,9 execută
dacă frecventa[x] > maxim atunci
maxim ← frecventa[x]
valoare ← x
sfârșit dacă
sfârșit pentru
scrie valoare, maxim
SFÂRȘIT ALGORITM
În cazul unei egalități, regula trebuie precizată. Dacă domeniul este parcurs crescător și folosim >, rămâne prima valoare maximă, adică cea mai mică.
Pentru 0–9 sunt necesare 10 poziții, cu indici 0–9.
frecventa[7]=4 înseamnă că 7 apare de 4 ori.
O valoare din afara domeniului poate produce o eroare de indexare.
Spune dacă alegi prima valoare maximă, cea mai mică sau toate valorile cu frecvență maximă.
Se citesc n cifre. Determinați frecvența fiecărei cifre și cifra cu frecvență maximă; la egalitate alegeți cifra cea mai mică.
Construim frecvențele într-o singură parcurgere, apoi parcurgem domeniul 0–9. Folosim >, nu >=, astfel prima valoare maximă rămâne răspunsul. Deoarece domeniul este parcurs crescător, ea este cea mai mică.
frecventa[0..9] ← 0
citește n
pentru i ← 1,n execută
citește x
frecventa[x] ← frecventa[x] + 1
sfârșit pentru
maxim ← -1
cifra ← 0
pentru x ← 0,9 execută
dacă frecventa[x] > maxim atunci
maxim ← frecventa[x]
cifra ← x
sfârșit dacă
sfârșit pentru
scrie frecvențele
scrie cifra, maxim
n = int(input())
frecventa = [0] * 10
for i in range(n):
x = int(input())
frecventa[x] = frecventa[x] + 1
maxim = -1
cifra = 0
for x in range(10):
if frecventa[x] > maxim:
maxim = frecventa[x]
cifra = x
for x in range(10):
print(x, frecventa[x])
print("Cifra cu frecvența maximă:", cifra)
print("Frecvență:", maxim)
Pentru 2,5,2,7,5,2,7: f[2]=3, f[5]=2, f[7]=2. Maximul este 3 la cifra 2.
Caz normal: mai multe cifre, cu frecvențe diferite.
Caz-limită: n=1.
Caz particular: toate cifrele sunt egale; apoi două valori au aceeași frecvență maximă.
După citirea tuturor cifrelor, fiecare poziție frecventa[x] este exact numărul aparițiilor lui x. Parcurgerea crescătoare a domeniului și folosirea lui > selectează cea mai mică valoare în caz de egalitate.
1. Ce reprezintă frecventa[x]?
2. Pentru domeniul cifrelor 0–9, câte poziții are lista de frecvențe?
3. Cu ce valori se inițializează frecvențele înainte de citirea datelor?
4. Pentru șirul 2, 5, 2, 7, 5, 2, care este frecventa[2]?
5. Ce înseamnă frecventa[7] = 4?
6. De ce sunt potrivite listele de frecvențe pentru cifrele 0–9?
7. Dacă două valori au aceeași frecvență maximă, ce trebuie făcut?
8. Care este diferența dintre valoare și frecvență?
Analizor de note. Citiți n note între 1 și 10, construiți frecvențele, afișați fiecare frecvență, nota cu frecvența maximă, numărul de note distincte și media calculată din frecvențe. Tratați egalitățile și testați cel puțin trei cazuri.
Revizuiește activitățile, verifică testele și apoi marchează lecția ca finalizată.