
75_g_MERESE
75_g_MERESE

n = 7
t = [2.2, 1.9, 2.0, 2.3, 2.1, 1.7, 2.1]
h = 20.0
g = [0.0] * n
s = 0.0
# g értékek kiszámítása
for i in range(n):
g[i] = 2 * h / (t[i] * t[i])
# Minimum és maximum indexek keresése
i_min = 0
i_max = 0
for i in range(n):
if g[i] < g[i_min]:
i_min = i
if g[i] > g[i_max]:
i_max = i
# Pozitív g értékek összegzése
for i in range(n):
if g[i] > 0:
s += g[i]
# Eredmény kiírása
print(f"g mért értéke: {s / (n - 2)}")
A tudósok hosszú évek óta próbálják megfejteni a természet egyik nagy rejtélyét: mi határozza meg egy anyag viselkedését bizonyos körülmények között? Dániel, a fiatal és ambiciózus kutató, elhatározta, hogy saját számításai segítségével fényt derít a jelenségre.
Először meghatározta az n = 7 változót, amely pontosan mutatta, hány mérési adatot fog vizsgálni. Ez volt az alap, amelyre az egész számítás épült. A kísérlet során kapott mért értékeket egy t nevű listában rögzítette: ezek a kis eltérések és finom változások hordozhatták a rejtett összefüggéseket.
A számításokhoz szüksége volt egy állandó értékre, amely befolyásolta az eredményeket. Ezt jelölte ki h = 20.0 értékként. Ez volt az az alapvető paraméter, amely az összes későbbi egyenletben szerepelt. Hogy biztosítsa a teljes számítások pontosságát, létrehozott egy új listát, g-t, amelynek minden eleme kezdetben 0.0 volt. Ez szolgáltatta a kiindulópontot az átalakuló adatokhoz.
Ahogy elmélyült a számításokban, meghatározta a kezdeti összegző változót: s = 0.0. Ez biztosította, hogy minden pozitív érték megfelelően hozzáadódjon. Dániel nekilátott a számítások elvégzésének: egy ciklus segítségével minden egyes mérési ponthoz kiszámította az új értékeket:
> g[i] = 2 * h / (t[i] * t[i])
Ez a képlet volt a kulcs: egyensúlyban tartotta az adatokat, és segített az egyedi viselkedés feltérképezésében. De tudta, hogy nem elég csupán a számokat meghatározni; szüksége volt arra, hogy az egyes értékek extrém viselkedését is azonosítsa.
Ezért létrehozta az i_min és i_max változókat, amelyek az első mérési pontra mutattak. Ahogy a ciklus tovább haladt, megtalálta a legkisebb és legnagyobb hatású értékeket:
> if g[i] < g[i_min]: > i_min = i > if g[i] > g[i_max]: > i_max = i
Ez a rész kulcsfontosságú volt: segített megérteni, melyik pont mutatja a legnagyobb eltérést, és hol található a legkisebb hatás. Végül eljutott az egyik legfontosabb számításhoz: az összegző számításhoz.
Minden egyes értéket figyelmesen vizsgált meg, és csak a pozitívakat vette figyelembe:
> if g[i] > 0: > s += g[i]
Ez volt az a lépés, amely a teljes vizsgálat végső eredményéhez vezetett. A kutatás végén Dániel büszkén tekintett a monitorra, ahogy az utolsó számítás megjelent:
> print(f"g mért értéke: {s / (n - 2)}")
Aznap este, ahogy a labor fényében elmélkedett az eredményekről, megértette: minden számítás egy történetet mesél el, és minden adatsor egy mélyebb igazságot hordoz magában.
Íme a Python kód soronkénti magyarázata:
n = 7
Meghatározzuk a tömb méretét: A változó n tárolja, hogy hány elem van az adatsorban (itt 7 darab).
t = [2.2, 1.9, 2.0, 2.3, 2.1, 1.7, 2.1]
Létrehozunk egy listát t néven, amely az adatsor értékeit tartalmazza. Ezek a bemeneti adatok, amelyeken a számításokat végezzük.
h = 20.0
Egy konstans értéket (h) definiálunk, amelyet a későbbi számításokban használunk. Az értéke itt 20,0.
g = [0.0] * n
Létrehozunk egy listát g néven, amelynek minden eleme kezdetben 0.0. Ezt a listát később töltjük fel a számított értékekkel.
s = 0.0
Létrehozunk egy változót s néven, amelyben a pozitív g értékek összegét fogjuk tárolni.
for i in range(n):
g[i] = 2 * h / (t[i] * t[i])
Egy ciklus fut végig a t lista elemein, és minden egyes elemhez kiszámít egy g értéket a megadott képlet alapján:
g[i] = \frac{2 \cdot h}{t[i]^2}
Ez az új érték minden iterációban eltárolódik a g listában.
i_min = 0
i_max = 0
Inicializáljuk a minimum és maximum értékek indexeit (i_min és i_max) az első elem indexére (0)
for i in range(n):
if g[i] < g[i_min]:
i_min = i
if g[i] > g[i_max]:
i_max = i
Megkeressük a g listában a minimum és maximum értékek indexeit:
Ha a jelenlegi g[i] kisebb, mint a lista aktuális minimuma (g[i_min]), akkor az i_min változót frissítjük az i indexre.
Ugyanez történik a maximum keresésénél is: ha g[i] nagyobb, mint az aktuális maximum (g[i_max]), az i_max frissül.
for i in range(n):
if g[i] > 0:
s += g[i]
Kiszámítjuk a pozitív g értékek összegét. A ciklus minden g[i] elemre ellenőrzi, hogy pozitív-e (g[i] > 0), és ha igen, hozzáadja az értéket az összegző változóhoz (s).
print(f"g mért értéke: {s / (n - 2)}")
Kiszámítjuk az eredményt: Az összes pozitív g érték átlaga kerül kiszámításra, amelyből két elem (a minimum és a maximum) ki van zárva. Az eredményt kiírjuk a képernyőre.