Fizika, matek, informatika érettségi

Home Fizika Excel Access A weboldalról

I. feladatsor: statisztika

4. szint

A statisztikai jellemzők definíciói egy számokból álló minta, más néven adatsokaság esetén:

Készíts statisztikát egy véletlen számokból álló adatsokaságra! Az adatok bekérésénél és megjelenítésénél a minta alapján dolgozz! A kerekítéseknél mindenhol legfeljebb két tizedes jegy értékre kerekíts! A feladatok számát is írd ki a megoldások előtt! Azt se felejtsd el, hogy a programnak akkor is működnie kell, ha alacsony a darabszám és nagy intervallumból jöhetnek a számok.

Feladatok:

  1. Kérd be a felhasználótól, hogy a minta hány számból álljon, és mi legyen a legnagyobb pozitív egész szám (n) az adatsokaságban!
  2. Készítsd el és tárold el a mintát! A minta számai az [1;n] intervallumból kerüljenek ki véletlenszerűen, és legyenek egész számok (pl. ha a felhasználó 5-öt adott meg, akkor az 1, 2, 3, 4, 5 halmazból lehetnek a számok a mintában). A továbbiakban figyelj arra, hogy nem biztos, hogy minden szám előfordul a mintában.
  3. Írasd ki a képernyőre a minta terjedelmét, legnagyobb és legkisebb elemét, átlagát! Az átlag legfeljebb két tizedes jegyre kerekítve szerepeljen. A legnagyobb és legkisebb elem kiírásának tagolásához használj tabulátort!
  4. Határozd meg a minta mediánját és írasd ki a képernyőre! Add meg, hogy az adatok hány százaléka kisebb, mint a medián!
  5. Írd ki a gyak.txt fájlba a gyakorisági táblázatot!
  6. Írasd ki a képernyőre a második legkisebb elem relatív gyakoriságát!
  7. Szemléltesd a gyakorisági táblázatot csillagokkal a minta alapján! A leghosszabb csillagsor kb. 50 csillagból álljon, és a csillagok száma az egyes elemek gyakoriságával legyen egyenes arányban.
  8. Határozd meg az adatok szórását és írja ki a képernyőre! A számítás minél pontosabb legyen, de a kiírás csak két tizedes jegyre történjen.

Minta:
1.feladat
Add meg az elemek darabszámát: 10000
Add meg a legnagyobb elemet: 10

3. feladat
A minta terjedelme: 9
A legkisebb elem: 1 a legnagyobb elem: 10
A minta átlaga: 5.49

4. feladat
A medián: 5.0
Az adatok 40.0%-a kisebb a mediánnál.

6. feladat
A második legkisebb elem: 2, relatív gyakorisága: 10.04%.

7.feladat
Szám relatív gyakoriság
1 10.05% *************************************************
2 10.04% *************************************************
3 10.06% *************************************************
4 10.12% *************************************************
5 9.9% ************************************************
6 10.27% **************************************************
7 9.65% ***********************************************
8 10.08% *************************************************
9 9.88% ************************************************
10 9.95% ************************************************

8.feladat
A szórás: 2.87

A gyak.txt fájl mintája:
1: 1005 darab
2: 1004 darab
3: 1006 darab
4: 1012 darab
5: 990 darab
6: 1027 darab
7: 965 darab
8: 1008 darab
9: 988 darab
10: 995 darab



import random

print('1. feladat')
darab = int(input('Add meg az elemek darabszámát: '))
hatar = int(input('Add meg a legnagyobb elemet: '))

# 2. feladat
adatok = [random.randint(1,hatar) for i1 in range(darab)]

print('\n3. feladat')
print('A minta terjedelme:',max(adatok)-min(adatok))
print('A legkisebb elem:',min(adatok),’\ta legnagyobb elem:’,max(adatok))
print('A minta átlaga:',round(sum(adatok)/darab,2))

print('\n4. feladat')
adatok.sort() # a mediánhoz rendezni kell a mintát
if darab%2==1: # ha páratlan számú a minta, a középső elemre van szükség
median = adatok[(darab//2)+1] # pl. 7 elemnél 7//2=3, és a 4. elem a középső
else:
median = (adatok[int(darab/2)]+adatok[int(darab/2)+1])/2 # pl. 4 elemnél a 2.(=4/2) és 3.(=4/2 + 1) összegének a fele
print('A medián:',round(median,2))
kisebb = [szam for szam in adatok if szam print('Az adatok',str(100*round(len(kisebb)/darab,2))+'%-a kisebb a mediánnál.')

# 5. feladat
szamok = set(adatok) # minden szám csak egyszer lesz benne
fajl = open('gyak-vg.txt','w')
for szam in szamok:
print(str(szam)+':', adatok.count(szam),'darab',file=fajl)
fajl.close()

print('\n6. feladat')
szamok = list(szamok) # rendezni nem lehet halmazt, ezért listává kell alakítani
szamok.sort()
print('A második legkisebb elem:',str(szamok[1])+', relatív gyakorisága:',str(round(adatok.count(szamok[1])/darab*100,2))+'%.')

print('\n7. feladat')
gyakorisag = [round(100*adatok.count(szam)/darab,2) for szam in szamok] # a számok relatív gyakorisága %-ban, kerekítve arany = 50/max(gyakorisag)
print('Szám\trelatív gyakoriság')
for i1 in range(len(szamok)):
print(str(szamok[i1])+'\t'+str(gyakorisag[i1])+'%\t','*'*round(arany*gyakorisag[i1]))

print('\n8. feladat')
atlag = sum(adatok)/darab # nincs kerekítve, így pontos a számítás
szoras = (sum([(adat-atlag)**2 for adat in adatok])/darab)**0.5
print('A szórás:',round(szoras,2))