Algoritmusok

[megoldva] Sorbanallasi feladatok modelezese

Fórumok

Sziasztok!

Nem tudom jo helyre raktam-e ezt a bejegyzest, de azert remelem tud valaki segiteni.
A feladat a kovetkezo: kell irjak egy sorbanallast modellezo programot, ami egy sorbanallasi modell eseten egy grafikonon abrazolja a sorhosszt egy ido intevallum alatt. Tehat ki kellene szamoljam a sorhosszt tobb idopillanatban, a beerkezesi intenzitas es kiszolgalasi intenzitas fuggvenyeben a kovetkezo modellek eseten: M/M/1, M/M/n, M/M/n/n

E dokumentum segitegevel probalok okosabb lenni. Odaig eljutottam, hogy talaltam egy kepletet (32-es keplet utan), amivel ha jol ertem a dolgokat, akkor ki lehet szamolni, hogy egy idointervallum alatt adott beerkezesi intenzitassal mi annak a valoszinusege, hogy k beerkezes tortenjen. Itt nem ertem. Akkor azt kell venni, amelynek a legnagyobb a valoszinusege(de ha jol szamolok, akkor mindig ket legnagyobb van)?

Elore is kosz a segitseget
Udv, zero

Szerk:
itt a program

Hatalmas logfile "elemzéséhez" ötletek

Fórumok

Van egy shoutcast logfile-om, ~380000 sor, naponta ~7000 sorral bővül. Ebből szeretnék hallgatottsági és egyéb adatokat kinyerni.

Komolyabb tervezés nélkül nekiugorva úgy oldottam meg, hogy soronként néztem meg regexppel, hogy tartalmaz-e olyan adatot, ami épp nekem kell, valamint a keresett időintervallumba esik-e. A néhány ezer sort tartalmazó teszteléshez használt logrészleten jónak tűnt, de a teljessel próbálva kiderült, hogy nagyon lassú.

Pythonban próbáltam megoldani a dolgot. Még C-ben tudnám esetleg megírni ugyanezt, de előtte inkább ötleteket szeretnék kérni, hogy hogyan lehet ezt a feladatot megoldani hatékonyabban. Nem sok közöm van a programozáshoz, szóval a triviális ötletek is jöhetnek :)

Előre is köszönöm!

Csoportosítás

Fórumok

Sziasztok!
Beleütköztem egy olyan problémába, amit már egy jó hete nem tudok megoldani.
A bemenő adatom egy nxn es mátrix, ami 0-kal és 1-kel van feltöltve. A sorok és az oszlopok betegségeket reprezentálnak, és ott van a mátrixban 1, ahol a két betegség összetartozását kimutattuk a kutatásainkban. Szóval valami ilyesmi:


+ A B C D E
A - 0 0 1 1
B 0 - 1 0 0
C 0 0 - 0 0
D 1 0 0 - 0
E 0 0 0 1 -

Azt szeretném kérdezni, hogy van e arra valami algoritmus, amivel ebből kinyerhetem a csoportokat. A példában szereplő mátrix két csoportot ad:
A D E illetve B C. Tehát igazából csak az 1 nek van információértéke (ami két betegség összecsoportosítását jelenti, a 0 nak nincs, mert lehet, hogy csak nem tudtuk kimutatni az összetartozást.
Bármilyen ötletet szívesen fogadnék.

Csaba

numerikus módszerek

Fórumok

Sziasztok!

van egy feladatom, amin nem igazán tudom, hogy hogyan induljak el, egy egyenlet/egyenlőtlenség rendszert kellene megoldani polinom időben, ha egyáltalán lehetséges:

x2,x1,x0 változókkal (egészek):

1.) x1^2 = 4*x2*x0
2.) y1^2 +2*y1*x1 = 4*y0*(y2+x0) + 4*x2*y0
3.) 100*x2+10*x1+x0 < 100*y2+10*y1+y0

és y2,y1,y0 konstansok, és egészek.

Gondolkoztam azon, hogy valahogy a Newton iterációval meg lehetne oldani a feladatot, de ott valós számokkal dolgoznak, illetve amit én ismerek az egy változós függvényeket használ és nem igazán tudom, hogy hogyan lehetne kiterjeszteni három dimenzióra.

Köszi!

-----------------------

na párszor javítottam, most már minden OK :)

Faktoriális végén hány nulla?

Fórumok

Egy másik thread-ben olvastam ezt a feladatot és elindította a fantáziámat. A faktoriális végén található nullák számához biztos nem kell magát a számot kiszámolni. Hogyan kaphatjuk meg tehát a nullál számát egy "energiatakarékos" algoritmussal?A feladat/játék tehát a következő:

1. Határozzuk meg az 50! végén található nullák számát számológépet nem igénylő módszerrel (tehát használhatsz táblázatkezelőt, de csak nyilvántartásra).

2. Adjunk meg algoritmust, ami tetszőleges n-re (1 <= n <= 65535, egyelőre) megadja az n! (1*2*...*n) végén található nullák számát. Valszeg O(n^2)-be bele kell férjen a tárigény és a futási idő is.

Körök...

Fórumok

Sziasztok!

A probélma: Van egy k*k méretű mátrixom, benne minden pont egy súlyt
reprezentál. Továbbá adott egy x szám. Kellene keresni olyan körutat a
mátrixban, hogy a körútban szereplő elemek összege a lehető legnagyobb legyen. (lépkedni fel, le, jobbra, balra lehet)
Sejtésem szerint NP-teljes problematika, így valami közelítő eljárás kidolgozásán gondolkodtam...

Ötlet 1: mohó algoritmus, kezdőpont választás mohó módon vagy a legnagyobb elemeket véve vagy olyan pontokat, melyek környezetében a súlyok átlaga a legnagyobb. Ok ez még megoldható. Ezután mohó módon megkeresni a következő pontot meg a következőt és így tovább... Így jó esetben és kis x-re találok utat, ezt le is kódoltam.
Kérdés 1: Hogyan lehetne átalakítani az algoritmust, hogy egy bizonyos pont után (x/2-1 távolság) a kezdőpont felé haladva keressen.
Gondoltam, hogy ellenőrzöm, hogy léphet-e adott pontra, de olyan problémába ütköztem, hogy az (x/2). lépés esetén olyan cellát választott mohó módon, amiből nem lehet visszajutni x/2 lépésben a kezdőcellába...

Ötlet 2: építsünk fát és mohó algoritmus: Kezdőpont kiválasztva ok, legyen ez a fa gyökere.
Az ebből 1 lépésben elérhető pontokat vegyük fel gyerekeknek.
Majd az ezekből elérhetőket és így tovább... A probléma ott kezdődik, hogy végtelen lesz a fa, mivel ahonnan jöttem, oda vissza is tudok menni... Viszont annyiból jó lenne, hogy a gyökérből elindulva x lépés után megnézem, hogy milyen levelek érhetők el. Méghozzá úgy, hogy olyan utat választok, amiben gyökér = levél és az úton levő többi elem között nincs azonos. Ezen utak közül amennyit csak lehet végignézek és a legnagyobb összegűt kiválasztom.
Kérdéseim:
a.) Hogyan lehet ilyen fát építeni, hogy csak adott mélységig fejtse ki a pontokat? illetve
b.) Hogyan lehet bejárni, hogy érvényes utat (kört) adjon vissza és a rossz megoldásokat (tehát pl. (1,1)->(1,2)->(1,1) és x=4 esetén) kiszűrje?

Ötlet 3: random módon körök keresése, majd ellenőrzés - hát random... nemgyerebe számomra

Kérdések:
Egyáltalán, hogyan lehet (általánosítva) adott pontból kiindulva x hosszú kört keresni egy 2d tömbben?

Esetleg valami jobb ötlettel tudtok segíteni?

Minden ötletet köszönök!

nyari/Teli idoszamitas

Fórumok

Udv!

Egy kis segitsegre lenne szuksegem. Arrol lenne szo, hogy hogyan lehet programilag megallapitani egy adott datumrol hogy az nyari vagy teli idoszamitasba esik? Egeszen pontosan az kellene hogy meg tudjam hatarozni, hogy Marcius utolso vasarnapja 01:00 es Oktober utolso vasarnapja 02:00 kozott van-e. A gondom az utolso vasarnap kinyeresevel van.

Tudnatok ebben segiteni egy kicsit? Faradt vagyok hogy ertelmesen tudjak gondolkodni :}} (Meg nem voltam szabadsagon)

PLC-ben lesz implementalva, ugyhogy a nyelvspecifikus fuggvenyek nem jok. Csak es kizarolag if segitsegevel ha lehet.

Elore is koszonom,
Balogh Szabolcs

keresőfás könyv

Fórumok

Sziasztok!

Gráfok, keresőfák érdekelnének minden mennyiségben. Valami olyasmi érdekelne, ahol le van írva, hogy mi hogy működik, mik az előnyeik, hátrányaik, esetleges implementációs ötletek. Specifikusabban adatok gyors elérése, keresése érdekelne és az ehhez használt algoritmusok (amiket pl. adatbáziskezelőkben is látunk). Tudtok ajánlani valami jó könyvet erre?
Köszönök minden választ!

Adatok módosítás elleni védelme

Fórumok

A feladat: olyan kis "adatbázis" (inkább csak tárhely) készítése, amihez csak hozzáfűzni lehet adatokat (fájlokat), az azonosító (amivel később vissza lehet kérni az adatot) szekvenciálisan nő.
Az egy dolog, hogy a fájlokat (esetleg) titkosítom; de azt is meg kellene oldani, hogy (észrevétlenül) ne lehessen módosítani az adatbázisban (ami egy fájl).

Eddig elképzelés: minden adat hozzáfűzés után hozzáfűzök egy hash-t is,
a) a teljes előtte lévő állomány hash-et (gond: adatbázis megnyitásakor ezt elő kell tudni állítani (nem tudom, hogy mondjam meg a hash motornak, hogy éppen ebből az állapotból induljon) végig kell olvasnom a teljes állományt - ami több giga is lehet (elvileg)
b) a hasht mindig csak az előző hash-ből és az azóta írt adatokból képzem, így "láncot" kapok - kérdés, hogy ez elég védelem-e?

Másik kérdés: úgy tudom, a "salted" hash-nek van csak értelme (tehát vmi kulccsal inicializáljuk a hash engine-t minden hash-elés előtt) - de hol tároljam ezt a bizonyos "sót"? Mennyire érzékeny adat?

Kösz, GT