Algoritmusok

Address parser

Fórumok

Sziasztok!

Egy elsőre blikkre triviális feladatra találtam egy használható megoldást, ami ha nem is 100%-osan, de megközelítőleg tökéletesen képes felbontani egy címet.
Az egyszerűség kedvéért vegyük a cím közterület részét.
A "Jedlik Ányos fasor 9. 7. emelet 18." stringet kellene felbontani a következő részekre:
- név
- jelleg
- házszám
- egyéb (az emelet-ajtóval most nem akarom bonyolítani a dolgot).

Kíváncsi vagyok, hogy erre tud-e valaki valami megoldást, vagy össze tudunk-e közösen hozni egy olyan megoldást, amely nagy mennyiségű minta mellett is 95% fölött teljesít.

Runge Kutta 4 "elszáll"

Fórumok

Sziazstok!

Egy nagyon egyszerű másodfokú differneciálegyenletet kell megoldanom, mégpedig az dx/dt^2=F/m, azaz newton2-t ami nagyon egyszerű lenne, ha létezne képletem az F-re (ezt már sokat csináltam). De nincs. Egy rakat mért adatom van, diszkrét értékekre, amik azért "kellemesen" sűrű. Na ha felírom erre a Runge-kutta4-et, akkor egyszerűen elszáll az egész mint az euler formula, révén a diszkrét értékekben konstans a függvény, hiába a 4-rendű RK, a diszkrét lépések miatt lényegében elueler formulát oldok meg, az meg instabil. Ha pedig akkora lépésközt válaszok, amivel nem maradok egy mért adat területén belül, akkor pedig azért száll el. MIt tudok ilyenkor kezdeni? Hátha van valakinek ötlete.

Előre is köszönöüm.

Iteráció teljesítmény-threadben?

Fórumok

Sziasztok.

A problémám a következő. Adott egy nagyon sok lépésből konvergáló iteráció (pár 10millió általában), ami lévén iteráció, nem tudom jól szálakra bontani, mivel n, re épül n+1 (n az iteráció száma), viszont van egy ötletem. Addig addig patkoltam a dolgot, hogy egy vektorba rendezéssel, valamint egy kisebb deriválási tétel következménnyel, n+1 már számolható, ha n-et n+1 legalább 3-lépéssel lemaradva számolja mögötte. És ez folytatható n+2 n+3....-al. Na a kérdésem a kövektező. C, vagy Cpp-ben van e arra megoldás, hogy ha van egy nagy tömb, erre eresztek threadszám pointert, akkor n+1 szál addig várakozik, amíg n szál odébb nem áll X-el (jelen eseteben 3-al)?

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

UI:
Egy kis részletesebb magyarázat, mert többen is kérték. Az adat amin dolgozok, egy pár 100k elemszámú sorvektor. Egy metódus egyszerűen végig szalad, most tegyük fel úgy hogy, ha 3.elemre mutat egy p pointer akkor a 3. elem értéke p=(p-3)+(p-2)+(p-1)+p+(p+3)+(p+2)+(p+1). majd lép egyet a pointer, és ugyanezt ismétli eggyel odébb. Persze a képlet nem ez de ez a lényeg. Kicsit olyan mint egy mozgóátlag. Mivel a megfelelő sorba rakást követően (valamint egy közelítés a derivál szabályból) az eredményre nincs hatással csak a p +-3-as környezete, így elvileg. a következő szál már indulhat is, ha a pointer nagyobb elemszámra mutat mint 4, hiszen minden eredmény készen van, ami kell a számításhoz.

Offline adatszinkronizálás

Fórumok

Tudom, hogy hülye a cím, de nem találtam jobbat.

Adott egy szerver, illetve kliensek. Kliensek a szerverrel szinkronizálnak, de előfordulhat olyan is, hogy offline változtat az adatokon a kliens, majd random időpontban szinkronizál. Ez egy kliens esetén nem lenne gond, de több kliens esetében már gázos. X kliens online üzemmódban dolgozik, Y offlineban, a szervertől függetlenül, az utolsó szinkronizáláskor érvényes adatokkal. Ha X azokat az adatokat állítgatta online, amit Y offline, akkor Y szinkronizációjakor konfliktus lép fel, nem eldönthető (mármint automatikusan), hogy melyik adat a valid, user interakció muszáj.

A probléma itt kezdődik. Milyen módon döntöm el egyszerűen, hogy egy adat új vagy más által módosított? Pár ötletem volt már, de nem öltött teljes formát még a fejemben.

Mivel local is tárolni kell az adatokat, amibe jöhetnek új bejegyzések, az adatoknak kliens oldalon is kell egy DB, márpedig egy external, vagy szerverID-val együtt. Amikor először szinkronizálom az adatokat, akkor localDB-be insertelem az adatokat, externalID-ként megadva a szerverDB-i ID-ját. Később ehhez lehet viszonyítani, így ha van az adatnak externalID-ja, akkor az már szinkronizált, ha nincs, akkor az localban képződött. Ennyi elég is a szinkronizációhoz sallangmentesen, vagy csak most vagyok már fáradt logikusan végiggondolni? Kell egy deleted mező is, hogy a szinkronizációkor a szerveren már törölt elem ne kerüljön be újból, mint új elem.

Mármost, ha szeretnék változáskövetést, akkor annyit csinálok, hogy minden táblához felveszek egy parentID, vagy historyID mezőt. Ha az adott adatot módosítják, akkor új bejegyzésként kerül be, historyID-ként a szülőjére mutatva, amely szülőnél a deleted flaget átbillentjük. Ha simán csak törölnek, akkor csak simán deleted flag billentés történik.

Szóval, ha egy ilyet szeretnék szinkronizálni, akkor csak annyi a dolgom, hogy megnézem, hogy az adat deleted-e, illetve van-e externalID-ja, majd a többit valahogy logikusan levezetem? Persze lehetnek olyan nyalánkságok, mint synced flag, amit átbillentünk, ha változik az adat (ilyen esetben nem ártana kliensekre lebontani, hogy kinél synced, kinél nem), lehet egy synced date, egy modified date (szerver idő, amikor utoljára szinkronizálták a módosított adatot, vagy inkább kliens idő, ami megbízhatatlan?), fel lehetne azt is jegyezni, hogy ki módosította, stb.

Mivel így a végére el is fogyott a lendületem, így a szerver nélküli, P2P szinkronizációba bele se merek menni, arról fogalmam sincs (majd nyitok neki új topicot).

Mennyire látom túl egyszerűen, bonyolultan a kérdéskört?

[erőforrás hiányában elhalasztva] GAP szkript futtatása

Fórumok

Nézegettem ezt az oldalt a bűvös kocka csoportjának elemzéséről - kedvet kaptam egy hasonló számoláshoz a GAP programmal.
Ezen szkript eredményére lenne szükségem:
Ez azonban memória hiányában mindig elhasal, még ha 4GB-ot adok is át neki (gap -o 4g). Ha valakinek van valami bitang erős gépe, ami elviselné a fenti számítást, hálás lennék érte.

12. Challenge24 BME Nemtzetközi 24 Órás Programozóverseny

Fórumok

Kipróbálnád az "extrém" programozást?

Akkor most itt az alkalom, hogy kipróbáljátok magatokat a 12.Challenge24 BME 24 órás programozóversenyen. A verseny során szükségetek lesz, egy, vagy több általatok választott programnyelvre, a matematikai tudásotokra, algoritmuselméletre, és az sem árt ha otthon vagytok a mesterséges intelligencia területén is.
Az előválogatón semmilyen megkötés nincs, a döntőben is csak annyi, hogy
külső segítséget nem használhattok.

Három fős csapatoddal együtt regisztrálj február 23-ig: http://ch24.org

FastFourier - fftw3

Fórumok

Sziasztok!

Kéne egy kis segítség. Nézegetem az fft33 könyvtárat.
egy olyat szeretnék kicsiholni belőle, hogy van egy
jellemzően 100.000 alatti jelsorozatom és ezt szeretném
kisímogatni.

Addig jutottam, hogy szépen fordul minden. Persze az output
oldal hülyeség, illetve nyilván nem az csak számomra.

A kérdésem az: ha azt szeretném, hogy egy tömbben bemegy
a jelsorozat, és egy másik tömbben kijön a kisímogatott
jel, akkor milyen függvényeket kell használni?

Real2Real típusú a probléma, tehát komplex számok nem
kellenek, a rendszer 1D-s gyakorlatilag egy fehérzajhoz
közeli jelet kéne egyengetni, realtime (azaz kb 1000 msec-
onként frissíteni a táblázatokat)

Eddigi "tudományom" az ügyben:

Létrehozom az r2r_plan-t
feltöltöm a tömböket
fftw_execute
kiolvasom a tömböket (az output számomra értelmezhetetlen)
destroy plan

Bármilyen ötletet, tanácsot megköszönök:

üdv mindenkinek: meditor

[megoldva] Táblázat felbontása azonos összegű részekre

Fórumok

Adott egy 4x16-os számtáblázat, amelyben mind a 4 oszlopban szereplő (egész) számok összege 16. (Három példa: http://web2.osb.hu/z/4x16_particiok.xlsx )
Arra van szükségem, hogy a 16 sort négyfelé szedjem, és mind a négy rész oszlopainak összege 4 legyen (ahogy a példa táblázatban is látszik).
Ezt eddig kézzel csináltam, és mindig sikerült (3x). Érdekelne, hogy ezt mindig meg lehet-e tenni (matekosok?) s írna-e valaki egy frappáns programot, amivel ezt automatizálni lehet? (Amúgy a http://pampyra.com -hoz tartozó játékok tervezéséhez kell; valódi életből vett ügy.)

Utólag felvett megszorítások: nem lehet két azonos sor, és minden sorban 4 az elemek összege.

[Megoldva] Matek segítség (RSA kódolás, maradékos osztás)

Fórumok

Sziasztok,

RSA kódolást tanulom, de a maradékos osztásnál vannak hiányosságok.

El tudná valaki magyarázni (linkelni), hogy az ilyen jellegű feladatokat hogyan lehet gyorsan, algoritmikusan megoldani?

855^2735 mod 3233 = ?

vagy 2011^36 mod 200 = ?

Köszönöm a segítséget mindenkinek!

egyedi fuggvenyabrazolas

Fórumok

Hello

Akadt egy kis fuggvenyabrazolasos gondom, s ebben szeretnek segitseget kerni.
Van egy chart, amire ra kellene illeszteni egy fuggvenyt, lehetoleg minel pontosabban.

Az alapot sikerult megcsinalni Bezier gorbevel, de bizonyos tartomanyokban nem teljesen passzol a dolog.

* Az eredeti: http://x-plane.hu/temp/L410/model/index.html (csak Bezier gorbes megoldas)
* A kicsit hekkelt megoldas: http://x-plane.hu/temp/L410/model/index_hack.html

* Az eredeti "lelke": http://x-plane.hu/temp/L410/model/engine.orig.js
* A hekkelt "lelke": http://x-plane.hu/temp/L410/model/engine.js

Ez egy L410-es hajtomuvenek homerseklete (y tengely) a magassag (x tengely) es sebesseg fuggvenyeben - a sebesseget a zold csuszkaval lehet allitani, ugy vandorol a piros gorbe.

Az eredeti megoldas problemaja: alsobb sebessegtartomanyban passzol a gorbe, de ahogy megyunk felfele, ugy csuszik el - ha pedig a nagyobb sebessegre illesztem a gorbet, akkor alacsonyban maszik el.

A hekkelt megoldasnal az a problema, hogy hekkelt :) Plusz az egyes valtasoknal, ahol a hekket alkalmaztam (100, 200, 300km/h), erthetoen ugrik egyet a gorbe, igy megeshet az az allapot, hogy ahogy emelkedik a gep adott sebesseggel, csokkennie kene az ITT-nek, de mikor a valtas van, felugrik hirtelen es ismet csokken.

Ezt szeretnem kikuszobolni. Erzem, hogy relativ egyszeru a megoldas, de napok ota nem tudom megoldani. Valami olyasmire gondoltam, hogy magassabb sebessegtartomanyban csak a "felso" reszet hasznalni a Bezier gorbenek, ezzel kvazi kiegyenesitve - s igy talan kozelebb kerul a tervhez.

Vannak egyaltalan az ilyen gorbe-illesztesre altalanos megoldasok?

Koszi!