Algoritmusok

OpenXML-Képletek újraszámoltatása

Fórumok

Sziasztok!

A következő parával szembesültem:

Van egy excel template (xlsx - openXML), amit egy kis progrmmal töltök fel adatokkal. A munkafüzetben vannak képletek és chartok is, viszont miután feltöltöttem adatokkal ezt a fájlt, a képletek nem számolódnak újra. Ha mondjuk excelben kézzel újrszámoltatom a képleteket, akkor a képletes cellákban már megjelennek az értékek, de a chartok (amiknek a forrásai a képletes cellák) nem mutatnak semmit.

Amit próbáltam:
-CalculationChain.xml eltávolítása a package-ből - nem segített
-képletet tartalmazó cellák értékeinek eltávolítása (összes child valuenode kigyilkolása) - nem segített
-1 óra guglizás: az első 2 javaslaton kívül semmit nem találtam.

Van valami ötletetek?

köszi!

Programtervezés tanulása

Fórumok

Sziasztok,

Hosszú idő óta szeretnék egy webes tartalomkezelőrendszert összeállítani, melynek az alapvető irányelve, hogy minnél általánosabb legyen, moduláris felépítéssel. Sajnos bizonyos tervezési kérdésekre nagyon nehezen találom a választ (most például a modulszervezésnél akadtam el) és úgy érzem, hogy gyakran nem a legoptimálisabb utat választom, ami egyszerűen visszavezethető tanulatlanságomra. Szeretném tanácsotokat kérni, hogy milyen könyvekkel/jegyzetekkel bővíthetem a tudásomat. Leginkább általános programszervezési ismeretekre lenne szükségem, nem algoritmusokra.
Vetettem egy rövid pillantást az UML-re, gondolom érdemes a használatát elsajátítani, de megoldást kínál önmagában a problémára? Amennyire láttam, csak a dolog ábrázolás részét oldja meg. (Nem gondolkozik helyettem, oh.)

Köszönöm a segítséget, sajnálom hogy homályosan fogalmaztam, nehezen tudom megfogalmazni, hogy valójában mi is hiányzik nekem.

mátrix hasonlósági transzformációk?

Fórumok

Sziasztok!

Kaptam egy feladatot (numerikus matematika témában), amelyben generáltatni kell egy speciális alakú véletlen mátrixot (A), majd egy másik véletlenszerűt (B), majd: "a B mátrix segítségével hajtson végre hasonlósági transzformációt A-n". Az egésznek az a célja, hogy elrontsuk A speciális tulajdonságát, majd a megfelelő algoritmusokkal visszaállítsuk.

Hogyan lehet egy mátrix segítségével hasonlósági transzformációt végezni egy másikon? Mit érthet ez alatt a feladat?

Petya

Minimal path (going to all town)

Fórumok

Van valakinek ötlete, milyen algoritmust kell használni egy olyan optimalizálási feladat megoldására, amikor a gráfban szereplő összes ponton át kell haladni egy bizonyos kiinduló ponttól egy bizonyos végcélig, de a lehető legrövidebb úton.

A minimális útkereső algoritmus kilőve, hiszen nem megy át minden ponton.
De az utazó ügynök sem használható, mert annak végcélja a kiindulási pontban van. Nem egy másik városban.

Valahogy ötvözni kellene a kettőt? Nem tudom.

table column friendly name

Fórumok

Ti általában hogyan oldjátok meg a következő gyakori feladatot a használt platformotokon?

Prezentálnod kell egy relációs adatbázis tábláját, táblázatos formában. Az esetek 99%-ban az attribútumoknak (oszlopoknak) más neve van az adatbázis rendszerben ("index", "name", "registrationDate" stb.), mint ahogy megjelenítéskor a táblázatban az oszlopfejlécekben látni szeretné az ember ("Kulcs", "Név", "Regisztráció dátuma").
Ezt a megfeleltetést hogyan realizáljátok?

Igazából azon gondolkozom, hogy a rengeteg lehetőség közül szerintetek melyik hatékony, egyszerű és újrafelhasználható? (Éppen most Java+MySQL-ben fogom használni, de a kérdés környezetfüggetlen.)

Arra gondoltam, hogy például az esetemben a JDBC lekérdezés-ből kapott ResultSet.ResultSetMetaData.getMetaData()-ból kinyerem az oszlopneveket. És a táblázat fejlécében megjelenítendő friendly nevet honnan veszitek ez alapján? (Esetleg többnyelvűségre is gondolva.) Lokalizációs libet használtok, és ez lesz a "hx0r" nyelv, és így lesz index => Kulcs ill. index => Index ? Vagy ezeket is táblában tároljátok, külön lekérdezés csinál hozzá egy függvény minden tábla minden oszlopához megjelenítéskor?. Vagy a tábla spéci metaadatában tároljátok (esetleg SQL "AS" label?), és onnan nyeritek ki közvetlenül a friendly nevet? Vagy van valami trükkös XML transzformációtok a metaadatokra?

Megint máshogy megfogalmazva, az MVC patternt alkalmazva a view-ban honnan jön és hogyan jelenítődnek meg a friendly oszlopnevek, mi ennek a metaadatnak az útja ebben a modellben?

ps. IMHO hiányzik ez "programtervezés" vagy hasonló fórum. Az ilyen típusú kérdések más absztrakciók, mint az "algoritmusok", még sincs jobb helyük.

A lámpagyújtogató dilemmája

Fórumok

Kevésbé formálisan:

Adott egy téglalap alapú terem, mely függőlegesen négyzetalakú cellákra van osztva. E cellák némelyikében (akár az összesben) lámpák vannak. Minden olyan cellában, amelyben van lámpa, van egy kapcsoló is. E kapcsoló e lámpához tartozik, viszont viselkedése nem szokványos: az aktuális lámpa állapotán kívül mind a négy élszomszédjának állapotát is megfordítja (ha az adott élszomszéd cellában van lámpa, illetve ha beszélhetünk négy élszomszédról, azaz nem falnál, illetve sarokban vagyunk).

A lámpák kezdetben fel és le is lehetnek kapcsolva (adott egy kapcsolási állapot). A cél az, hogy az összes lámpát lekapcsolt állapotba helyezzük.Formálisan:

Adott egy n×m-es { -1 ; 0 ; 1 } feletti mátrix. A mátrix egyes mezői 0 értékűek, ha az adott cellában nincs lámpa, -1 értékűek, ha van lámpa, és az le van kapcsolva, 1 értékűek, ha van lámpa, és az fel van kapcsolva.
Egy lámpa állítása a következő módosítást eszközöli a mátrixon: legyen a lámpa két koordinátája i és j. A lámpa kapcsolásának hatására az (i;j), (i;j-1), (i+1;j), (i;j+1), (i-1;j) cellák értéke (-1)-szeresére változik, ezek létezése esetén (azaz kivéve: i ∈ { 1 ; n } V j ∈ { 1 ; m } ).

A dilemma:

- Döntsük el, hogy lekapcsolható-e az összes lámpa!
- Adjunk olyan kapcsolási sort, amely az összes lámpát lekapcsolja!
- Adjuk meg ezek közül a legrövidebbet, ha több ilyen van, akkor azok közül valamelyiket.

Amire eddig jutottam:

Könnyen belátható, hogy a { -1 ; 0 ; 1 } a hagyományos Z-n értelmezett * (szorzás) műveletre zárt: hiszen -1 * 0 = 0 * 0 = 0 * 1 ; 1 * 1 = 1 ; -1 * -1 = 1 ; 1 * -1 = -1 . (Következésképpen ha a mátrix sorait vagy oszlopait { -1 ; 0 ; 1 } -beli vektorral szorozzuk, akkor { -1 ; 0 ; 1 } -beli mátrixot kapunk eredményül. Az is könnyen belátható, hogy { -1 ; 0 ; 1 } jólrendezett a Z-n értelmezett jólrendezésre, ami triviális, hiszen { -1 ; 0 ; 1 } részhalmaza Z-nek. Tehát a * szorzás műveletet teljes nyugodtsággal használhatjuk multiplikatív műveletnek, a > relációt pedig jólrendezési relációnak.

Én úgy látom, hogy a kapcsolgatást egy másik mátrixszal lehetne "nyilvántartani", modellezni. Legyen adott így egy n×m-es { 0 ; 1 } feletti mátrix, mely kezdetben nullmátrix. Egy (i;j) lámpa kapcsolása a mátrixban az (i;j) cellán hajtja végre a + műveletet, definiáljuk +(0) := 1 ; +(1) := 0 módon. Triviális, hogy ha a kapcsolási folyamat során egy kapcsolóhoz többször (kétszer) is hozzányúlunk, az a végeredmény szempontjából olyan, mintha egyszer sem nyúltunk volna hozzá, azaz ekkor csináltunk két fölösleges lépést. (Mivel a végső cél a legrövidebb út megkeresése, érdemes így szűrni a biztosan fölösleges lépéseket.)

A lámpák ( M(i;j) ∈ { -1 ; 1 } ) számának maximuma m*n (ekkor mindenhol van lámpa), tehát a lehetséges különböző kapcsolási utak (bárhová is vezetnek) maximuma 2^(m*n), ami banális. Azonban ezeknek igen csekély számú interpretációja fog az "összes lámpa lekapcsolásához" vezetni. Ezek közül aztán pedig talán ki lehetne választani a legrövidebbet (aminek maximális hossza n*m).

Holografikus Kutatási Stratégia II. (iHRS)

Fórumok

Köszöntöm az olvasót!

Sokat gondolkoztam, hogy ez a bejegyzés blog, fórum, vagy írás legyen.
Fórum lett belőle, ha esetleg elvétettem a műfajt, elnézést kérek.

Itt a HUP-on néhányszór előkerült már a címben megjelölt módszer.
Íme az előzmények:

(1) http://hup.hu/node/7880
(2) http://hup.hu/node/22782
(3) http://hup.hu/node/8090

Az elmúlt hetekben elkészítettem a HRS-nek egy olyan változatát, amely
interneten keresztül is használható. A honlap elérhető itt:

(4) http://www.meditor.hu/ihrs.php

A honlapon keresztül hozzáférhető néhány segédinformáció is, az előzményeken
kívül ezekbe is érdemes belekukkantani.

Jelen fórumnak a célja: néhány érdeklődő számára lehetővé szeretném
tenni, hogy saját témájában kipróbálja a HRS-t. Szóval várom a
hozzászólásokat és az erdeklődőket (-::

Minden jót: Végvári Lajos [meditor]

IX. BME Nemzetközi 24 órás Programozóverseny

Fórumok


Szeretsz programozni? Nem tudsz lefeküdni éjfél előtt? Szereted a kihívásokat? Összemérnéd a tudásod más programozókéval?

Akkor most ITT a lehetõség!

A Magyar Villamosmérnök- és Informatikus-hallgatók Egyesülete és a Simonyi Károly Szakkollégium büszkén mutatja be a

IX. BME Nemzetközi 24 órás Programozóversenyt.

Ha lemaradtál az elõzõ nyolc alkalomról, most itt a lehetõség, hogy TE is részese légy a kalandnak!

Ez a verseny a kreativitás, tudás, kitartás és csapatmunka próbája, egy igazi EXTRÉM KIHÍVÁS! A verseny rangjához és színvonalához a támogatók, valamint az általuk felajánlott 5000 eurós összdíjazás járulnak hozzá. Az összesítésben legtöbb pontot összegyűjtõ csapat viheti haza a vándorkupát és a fõdíjat.

A 2009. február 21-ig regisztrált csapatok elõször egy internetes elõválogató során mérik össze képességeiket, melyre 2009. február 28-án kerül sor. Az legjobbnak bizonyuló 30 csapat jut tovább a Mûegyetemen 2009. május 1-3. közt megrendezésre kerülõ helyszíni, 24 órás döntõbe. Itt egyetlen, de rendkívül bonyolult és érdekes feladatot kell majd megoldani, melyhez szükségetek lesz minden tudásotokra az algoritmus- és számításelmélet, a mesterséges intelligencia és a programtervezés területeirõl, valamint hatékony csapatmunkára és sok kreativitásra.

Minden résztvevõ saját számítógéppel indulhat. A technikai háttér és teljes ellátás biztosított. Nincs megkötés a használt hardverre, szoftverre és segédanyagokra vonatkozóan, de a verseny alatt tilos minden külsõ segítség igénybevétele.

További információért, az elõzõ évek feladatsoraiért látogassátok meg a verseny honlapját, ahol az események minden érdeklõdõ számára nyomonkövethetõk lesznek.

Ha nem félsz az eXtrém kihívásoktól, nincs más dolgod, mint alakítani egy háromfõs csapatot, és regisztrálni a http://www.challenge24.org weboldalon. A versenyen való részvétel ingyenes, nincs semmiféle nevezési díj!

Sok szerencsét és jó szórakozást kívánnak:
A rendezõk

A regisztráció határideje: 2009. február 21.
Weboldal: http://www.challenge24.org

Mutasd meg, hogy jobb vagy az átlagnál!!!!