M@D_FiSt went mad…

“A programozók leginkább a káromkodás nyelvét ismerik”

leave a comment »

Vagy valami hasonlót. Kár, hogy az “anyád” kulcsszóra általában nem történik semmi, pedig néha nagyon jól jönne, különösen mondjuk dinamikus láncolt listák esetén. A hétvégén volt szerencsém programozási feladatot kapni, mely nagyjából arról szólt, hogy a készülő PET szimulációs programhoz valahogy becsülni kéne a detektáláskor jelentkező holtidőket is. A cél az, hogy valami egyszerűbb zárt formulába kéne beleírni a holtidő korrekciót és betenni a programba. Ezért nekem kellett írni egy kisebb Monte Carlo programot, mely egyelőre nem túlzott mértékben tartalmaz fizikát, de már nincs sok hátra, hogy szimulálhassunk vele.

A dolog ugye arról szól, hogy a PET berendezésben lévő szcintillációs detektorok nem tudnak végtelen időbeli felbontással adatot gyűjteni, ezért mikor érkezik egy részecske a detektor nem tud új adatot rögzíteni amíg az előzőt fel nem dolgozza. Bénítható detektor modellben pedig a detektort mindegyik holt időn belül érkező részecske tovább bénítja. A szimulálást időben egyenletesen sorsolt bomlásokkal vizsgáltam. Megfelelő valószínűségekkel felszorozva kizárhatók azok a részecskék melyek el sem jutnak a detektorig. Amik eljutnak azoknak a beérkezési idejét regisztráltam és a többi számolást ezekből végeztem.

Mint adattárolási probléma, először valami nagyon menő megoldást akartam, mert kb. 2 nappal volt a feladat előtt adatszerkezet és algoritmusok óránk, ahol ilyesmiket tanulunk, csak még nagyon az elején vagyunk. Ekkor még nem gondoltam végig, hogy nem biztos, hogy pont egy bináris keresőfára lenne szükségem a probléma megoldásához. De aztán este megvilágosodtam, hogy jelen ismereteim alapján (mivel nem volt kéznél internet) a láncolt lista, beszúró rendezéssel sokkal jobb ötlet lesz, és tényleg. Ehhez még voltak stuktogramjaim is óráról, de azért beletelt egy fél napba, mire a megfelelő mutatókat adtam a megfelelő függvényeknek stb.

Miután listám volt már persze minden újabb funkció, eljárás újabb és újabb mutatódobálásokat és hibalehetőségeket hozott be. Arra is csak vasárnap jöttem rá, hogy a térszöget is bele kéne vennem a játékba, hogy ne minden ns-ra jusson egy beütés, amikor 300ns a holtidő. Na mindegy, igazából valamilyen szinten nagyon élveztem a feladatot, és ezt egy kis részben meg kellett osztanom. Igazából most is írhatnám a programot tovább, de valahogy most nem vagyok hangulatban hozzá, de persze ha sikerül, vagy úgy érzem majd mekkora májer vagyok, úgyis írok még róla. :)

Written by M@D_FiSt

2009. Szeptember 28. at 16:26

Posted in software, suli

Tagged with ,

Válasz