abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 04:44 | Nová verze

    Nová čísla časopisů od nakladatelství Raspberry Pi: MagPi 140 (pdf) a HackSpace 77 (pdf).

    Ladislav Hagara | Komentářů: 0
    dnes 01:00 | Nová verze

    ESPHome, tj. open source systém umožňující nastavovat zařízení s čipy ESP (i dalšími) pomocí konfiguračních souborů a připojit je do domácí automatizace, například do Home Assistantu, byl vydán ve verzi 2024.4.0.

    Ladislav Hagara | Komentářů: 0
    včera 22:11 | IT novinky Ladislav Hagara | Komentářů: 0
    včera 20:55 | Nová verze

    Neziskové průmyslové konsorcium Khronos Group vydalo verzi 1.1 specifikace OpenXR (Wikipedie), tj. standardu specifikujícího přístup k platformám a zařízením pro XR, tj. platformám a zařízením pro AR (rozšířenou realitu) a VR (virtuální realitu). Do základu se z rozšíření dostalo XR_EXT_local_floor. Společnost Collabora implementuje novou verzi specifikace do platformy Monado, tj. open source implementace OpenXR.

    Ladislav Hagara | Komentářů: 2
    včera 17:22 | Nová verze

    Byla vydána nová verze 0.38.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 4.4 nebo novější a také libplacebo 6.338.2 nebo novější.

    Ladislav Hagara | Komentářů: 1
    včera 17:11 | Nová verze

    ClamAV (Wikipedie), tj. multiplatformní antivirový engine s otevřeným zdrojovým kódem pro detekci trojských koní, virů, malwaru a dalších škodlivých hrozeb, byl vydán ve verzích 1.3.1, 1.2.3 a 1.0.6. Ve verzi 1.3.1 je mimo jiné řešena bezpečnostní chyba CVE-2024-20380.

    Ladislav Hagara | Komentářů: 1
    včera 12:11 | IT novinky

    Digitální a informační agentura (DIA) oznámila (PDF, X a Facebook), že mobilní aplikace Portál občana je ode dneška oficiálně venku.

    Ladislav Hagara | Komentářů: 8
    včera 05:11 | Komunita

    #HACKUJBRNO 2024, byly zveřejněny výsledky a výstupy hackathonu města Brna nad otevřenými městskými daty, který se konal 13. a 14. dubna 2024.

    Ladislav Hagara | Komentářů: 2
    17.4. 17:55 | IT novinky

    Společnost Volla Systeme stojící za telefony Volla spustila na Kickstarteru kampaň na podporu tabletu Volla Tablet s Volla OS nebo Ubuntu Touch.

    Ladislav Hagara | Komentářů: 3
    17.4. 17:44 | IT novinky

    Společnost Boston Dynamics oznámila, že humanoidní hydraulický robot HD Atlas šel do důchodu (YouTube). Nastupuje nová vylepšená elektrická varianta (YouTube).

    Ladislav Hagara | Komentářů: 1
    KDE Plasma 6
     (68%)
     (10%)
     (2%)
     (20%)
    Celkem 557 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Píšu CML

    26.2.2015 21:58 | Přečteno: 1793× | LeliMath | poslední úprava: 26.4.2016 19:44

    Aspoň mám ten pocit. Chci napsat dcerce na tablet aplikaci na procvičování matematiky. Udělal jsem si poměrně jasnou představu o designu i funkčnosti a začal jsem ji realizovat. Před večeří jsem dopsal komplexní datový model, co vše se dá parametrizovat pro generování rovnic. Zadavatel bude mít obrovské možnosti. Problém nastal, když jsem začal psát generátor.

    Sepsání myšlenek mi možná pomůže odrazit se dál, pokud ne, třeba mi někdo ze čtenářů konstruktivně poradí.

    Pro oba operandy rovnice i výsledek je možné nadefinovat buď minimální nebo maximální či obě hodnoty, případně rozsah hodnot (v tom případě jsou min a max zakázány). Pro jednoduchost zapomeňme na možné omezení vzdálenosti operandů. Triviální příklad se všemi možnostmi zadání je na prvním řádku, jedno řešení je na druhém řádku

    min: 1, max: 10 + min: 10 = výčet: 12, 13, 14, 18
    2 + 11 = 13

    Problém je, jak napsat obecný generátor? Nejspíše bych měl začít od výčtu hodnot, ze kterého si náhodně vyberu jedno číslo. A pak náhodně vybrat druhé číslo a dopočítat zbývající číslo. Například u uvedeného příkladu si k náhodnému výsledku (13) náhodně vygeneruju první operand (2) a vypočtu druhý (11). Bohužel je ale až příliš snadné zvolit číslo, se kterým rovnice nikdy nebude sedět; ke kterému nenajdu vhodné operandy. Můžu si pomoci chytristikou pro konkrétní situace. Zde u odečítání je lepší si vybrat vyšší číslo, takže začnu druhým operandem (11) a odečtem získám první (2). Ale stejně mi hodnota nemusí vyjít v rozsahu povolených hodnot. Takže pak musí následovat hledání správné kombinace brutální silou s pojistkou proti uváznutí (když zadání nemá řešení nebo mám smůlu na blbě vylosovaná čísla).

    Během psaní jsem nic nového nevymyslel. Napadá něco vás?

           

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    26.2.2015 22:46 Radek Miček | skóre: 23 | blog: radekm_blog
    Rozbalit Rozbalit vše Re: Píšu CML
    Jaké funkce se v těch rovnicích mohou vyskytovat?

    Pro vyřešení omezujících podmínek můžete zkusit nějaký CSP řešič např. minion nebo Gecode nebo ECLiPSe. Pokud to bude složitější, pak budete zřejmě potřebovat nějaký systém pro počítačovou algebru.
    27.2.2015 07:29 Leoš Literák | skóre: 74 | blog: LL | Praha
    Rozbalit Rozbalit vše Re: Píšu CML
    Díky, tušil jsem, že to bude vědecká disciplína. Po zběžném prohlédnutí nevidím reálné zprovoznění těchto knihoven pod androidem. Ale zkusím hledat něco v javě, už znám klíčová slova.
    Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
    26.2.2015 22:57 Dadam | skóre: 12 | blog: dadamovo
    Rozbalit Rozbalit vše Re: Píšu CML
    Sčítání a násobení bych udělal hrubou silou. Vyberu si výsledek, vygeneruju všechny možnosti jak ho dostat (pro sčítání je počet možností rovný výsledku, to není tak hrozné) a pak z nich vyberu ty, které vyhovují omezením pro operandy.

    Odčítání a dělení bude trochu horší, s daným výsledkem můžou být operandy jakkoliv složité. Tak si trochu pomůžu a jak odčítání, tak dělení si pro účely generování převedu na sčítání, respektive násobení. Pozor na dělení nulou.
    A i B mají svoje výhody a nevýhody. Vyberte si to, co vám vyhovuje víc, a necpěte A tam, kam patří B.
    27.2.2015 00:48 Marvin | blog: im_depressed | Gallifrey
    Rozbalit Rozbalit vše Re: Píšu CML
    Mas uz to implementovany? Dochazi tam realne k tomu zasekavani?

    Pokud to ma reseni, tak pravdepodobnost ze to bude u takhle jednoduchych prikladu nekonecne cyklit je dost mala. I kdyz chapu ze i ta teoreticka moznost ze k tomu dojde zpusobi ze brouk v hlave hloda :-) Ja mam podobnej filozofickej problem s gitem, kde se k identifikaci souboru pouzivaji hashe, a muze tam dochazet ke kolizim.

    Nedavno jsem delal neco podobnyho pro sestru a delal jsem to jednoduse hrubou silou:

    - vygeneruju prvni cislo

    - druhy cislo

    - zkontroluju jestli vysledek je v nejakym rozsahu; kdyz ne tak zahodim a opakuju

    Zadnyho zasekavani jsem si nevsiml. Ono i kdyz bys musel udelat treba 1000 pokusu nez se trefis, tak na dnesnich pocitacich jsou to radove mikrosekundy...

    Kdyz by k tomu dochazelo tak bych tam asi dal pocitadlo a po N pokusech nahlasil chybu :-)

    27.2.2015 07:15 Leoš Literák | skóre: 74 | blog: LL | Praha
    Rozbalit Rozbalit vše Re: Píšu CML
    Na tabletech jsou přeci jen horší procesory než v PC, takže stupidní hrubou silou jít nemohu. Chci ty větve aspoň trochu optimalizovat. Ale jinak konceptuálně souhlasím.
    Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
    27.2.2015 12:56 radix
    Rozbalit Rozbalit vše Re: Píšu CML
    Dnesni PC/NTB jsou tak 10krat (max) rychlejsi nez dnesni prumerne tablety.

    Hledat nejaka chytra/rychla reseni mne v tomto pripade prijde jako predcasna optimalizace. Ale pokud se s tim chce clovek trochu vyhrat/neco se naucit a ma na to cas, tak proc ne ...
    27.2.2015 13:24 Leoš Literák | skóre: 74 | blog: LL | Praha
    Rozbalit Rozbalit vše Re: Píšu CML
    Vždycky se snažím nejdříve přemýšlet a pak programovat. Pamatuju na přednášku na UPOL od Drdy, kdy vykládal, jak železničáři měli hrozně složitý algoritmus na fixní počet desetinných míst, který počítal poloměr zatáčky pro trať. Potřebovali více desetinných míst. Kouknul na to, našel v tom geometrické rovnice a sepsal jim na pár řádek algoritmus na libovolný počet desetinných míst.

    Podobně tady pro násobení. Pokud mám rozsah násobenců 10 čísel, může vyjít celkem 100 výsledků. Pokud je ale povoleno jen 5 výsledků, tak nalezení těchto rovnic může být se šancí 1:20 (pro prvočísla). Pokud ale začnu hledat od výsledku, mám dvakrát lepší šanci.
    Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
    28.2.2015 14:31 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
    Rozbalit Rozbalit vše Re: Píšu CML
    Pamatuju na přednášku na UPOL od Drdy...
    Toto je stezi uveritelna historka, ... protoze Dr.Dla na prednasky zasadne nechodil.
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    1.3.2015 07:02 Leoš Literák | skóre: 74 | blog: LL | Praha
    Rozbalit Rozbalit vše Re: Píšu CML
    Bavím se o roku cca 1997.
    Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
    27.2.2015 13:43 Mercuriuz | skóre: 16 | blog: Mercuriuz | V hospodě =)
    Rozbalit Rozbalit vše Re: Píšu CML
    predčasná optimalizace a promyslet si to dopředu a vyvarovat se možným problémům není jedno a to samý, nesmí se to samozřejmě přeháňet, ale pokud jde o důležitou část systému na které bude stát víc věcí, radši budu 20 minut přemýšlet a pak 10 minut programovat, než 5 minut přemýšlet a 5 minut programovat a potom to 10x přepisovat (nebo dělat znovu) včetně všech částí které ovlivnil přepis základu
    Linux users everywhere, raise your keyboards into the air, we´re warriors, warriors of the world.
    Josef Kufner avatar 27.2.2015 13:46 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Píšu CML
    Pokud to má být v rozsahu malé násobilky, tak těch možností budou stovky až tisíce. To i líný tablet upočítá během pár milisekund. Nebude to hezké řešení, ale bude spočítané rychleji, než naimplementuješ to hezké.
    Hello world ! Segmentation fault (core dumped)
    27.2.2015 14:15 Leoš Literák | skóre: 74 | blog: LL | Praha
    Rozbalit Rozbalit vše Re: Píšu CML
    Filozofická otázka: je lepší hledat řešení pro náhodně generované argumenty nebo najít všechny rovnice a z nich jednu náhodně vybrat? No, nic zase to přepíšu :-)
    Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
    27.2.2015 19:35 Kaiten
    Rozbalit Rozbalit vše Re: Píšu CML
    Vypočítat celkové množství možných rovnic, jednu náhodně vybrat a tuto konkrétní vygenerovat (skrz vygenerování všech kombinací před naší chtěnou). Velice rychle by se to dalo řešit v nějakém líném jazyku. Šla by Scala. Má explicitní lenost a běží nad JVM. Také by šli kombinace cachovat, pokud dá paměť. A pokud ne, šli by napřed komprimovat.
    1.3.2015 07:17 Leoš Literák | skóre: 74 | blog: LL | Praha
    Rozbalit Rozbalit vše Re: Píšu CML

    Reálné výsledky na Nexus 4: během jedné milisekundy zvládne 5 cyklů nalezení jedné rovnice (obsahující 2x generování náhodného čísla, dvě matematické operace, pár porovnání a hlavně několik volání funkcí).

    Parametry:

    FormulaDefinition{unknowns=[RESULT], operators=[+], result=Values{minValue=null, maxValue=null, listing=[10, 11, 12]}, operandDifference=null, rightOperand=Values{minValue=3, maxValue=60, listing=null}, leftOperand=Values{minValue=0, maxValue=90, listing=null}}

    Moje optimalizovaná verze najde v 10 případech řešení do 3 pokusů 6x, do 5 pokusů 1x, do 9 pokusů 2x a jednou potřebovala 35 pokusů (což zabralo 7 ms). To je docela slušné :-)

    Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
    Josef Kufner avatar 2.3.2015 01:05 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Píšu CML
    Pokud vím, ty destičky mají CPU běžící minimálně na 1GHz. Máš tam pár násobení, hm, co ten program dělá těch zbývajících 999000 taktů?
    Hello world ! Segmentation fault (core dumped)
    Josef Kufner avatar 27.2.2015 01:44 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Píšu CML
    Trochu inspirace můžeš najít v materiálech k předmětu Testování a verifikace software, hlavně v druhé přednášce. Sice ti to komplikuje vazba mezi operandy a výsledkem, ale mohlo by ti to pomoct s generováním lépe rozložených testů v prostoru.
    Hello world ! Segmentation fault (core dumped)
    27.2.2015 05:55 Radovan
    Rozbalit Rozbalit vše Re: Píšu CML
    Například u uvedeného příkladu si k náhodnému výsledku (13) náhodně vygeneruju první operand (2) a vypočtu druhý (11).
    Já jsem na to šel opačně, vždy jsem vygeneroval operandy, z nich jsem vypočítal výsledek. Pokud byly příklady sčítání a násobení, vypsaly se operandy, pokud byly odčítání a dělení, vypsal se výsledek a první operand, bez ohledu na to jestli je větší nebo menší. Tak jsem se vždycky vešel do zadaného limitu.

    Nedělaly se před třiceti lety takovéhle věci v BASICu na dvacet řádků? :-D
    27.2.2015 07:13 Leoš Literák | skóre: 74 | blog: LL | Praha
    Rozbalit Rozbalit vše Re: Píšu CML
    Problém jsou ty omezující podmínky. V tomto případě součet náhodného čísla do desíti a většího než deset se málokdy trefí do čtyř konkrétních hodnot.
    Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
    27.2.2015 08:08 Mercuriuz | skóre: 16 | blog: Mercuriuz | V hospodě =)
    Rozbalit Rozbalit vše Re: Píšu CML
    chápu důvod pro min-max omezení operandů a chápal bych to i u výsledku, proč je ale potřeba konkrétní výsledek z výčtu hodnot?
    Linux users everywhere, raise your keyboards into the air, we´re warriors, warriors of the world.
    27.2.2015 08:25 Leoš Literák | skóre: 74 | blog: LL | Praha
    Rozbalit Rozbalit vše Re: Píšu CML
    Analyzoval jsem učebnici, jaké typy příkladů tam jsou. A tak mi přišlo dobré mít kromě od-do i možnost definovat konkrétní hodnoty. Asi jsem to nadefinoval příliš univerzálně, teď právě ruším decimální čísla a nechám jen celá.
    Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
    27.2.2015 07:35 KS | skóre: 10 | blog: blg | Horní polní u západní dolní
    Rozbalit Rozbalit vše Re: Píšu CML
    Tolik práce a přitom je to taková blbost :-)

    Koupil bych dceři papír a tužku a místo věnování spousty času sezení u počítače nad pochybným programem využil čas k osobnímu kontaktu.
    Pochybnost, nejistota - základ poznání
    27.2.2015 07:51 Aleš Kapica | skóre: 51 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: Píšu CML
    Přesně tak. Věnovat tolik času ptákovině, která ji za půl hodiny přestane bavit, je úplně o ničem.

    Věnuj ten čas raději rovnou jí. Udělej si s ní výlet do nějakého IQ parku, když už ji chceš dopřávat technické vzdělání, nebo jen tak někam na hřiště, kde bude mít kontakt s jinými dětmi. Uděláš lépe.
    27.2.2015 08:27 Leoš Literák | skóre: 74 | blog: LL | Praha
    Rozbalit Rozbalit vše Re: Píšu CML
    Je to koníček pro mě. Jsem tvořivý člověk, nebaví mě jen konzumovat. Stagnace je čekání na smrt.
    Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
    pavlix avatar 27.2.2015 10:20 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Píšu CML
    +1
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    27.2.2015 16:18 Aleš Kapica | skóre: 51 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: Píšu CML
    Pokud to bereš jako cvičení, a pak se s tím hodláš někde vytasit.. Chtěl jsem jenom upozornit na fakt, že představy rodičů jsou mnohdy na hony vzdálené od představ jejich ratolestí.
    27.2.2015 18:11 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
    Rozbalit Rozbalit vše Re: Píšu CML
    To je v pořádku, proti Vaší technické programovací zálibě nemůže nikdo nic namítat, sám to znám :-)

    Nicméně připomínka Aleše Kapicy a JD míří k otázce, zda to děláte pro sebe nebo pro dceru.

    Pokud pro dceru, opusťte tablet a matematiku se učte skutečně rovnou s ní. Mimo kontakt, který má význam pro vás oba, to může být zajímavé i pro Vás - existují třeba pozoruhodné metody jak matematiku učit pomocí hudby (je využit rytmus a opakování), kreslení (je využita geometrie a vizuální vnímání), navlékání provázků (je využita topologie), ve skupině pomocí cvičení (kombinace všeho předešlého) atd. Viz montessori, waldorfská a intuitivní pedagogika.

    Dopad na člověka se pak nedá porovnat s hraním nejaké hry na tabletu, které může malé děti spíš poškodit (chápu, že tím řadu lidí zde pobouřím, ale jsem o tom přesvědčen, mimo jiné vzhledem ke své zkušenosti s lidmi s postižením). Něco jiného je učit matematiku pomocí programování lidi v pozdějším věku - gymnázium a dál., tam je člověk už plně vybaven na uvažování v abstrakcích a je to naopak to pravé. Tam už ale programuje přímo ten člověk - žák.

    Omlouvám se za delší příspěvek - ale podle mě to je přímo k tématu.
    -- OldFrog
    27.2.2015 08:28 Mercuriuz | skóre: 16 | blog: Mercuriuz | V hospodě =)
    Rozbalit Rozbalit vše Re: Píšu CML
    To, jestli ji přestane bavit není jisté, pokud by finální aplikace byla ve formě hry, může mít dítě radost z odehraného levelu (správně vypočítaných příkladů), následné odměny a samozřejmě chuť jít dál. Výukové aplikace nejsou vždycky špatné, pokud dítě ve volném času může k tabletu sednout a hrát hry které jsou totálně o ničem, je možnost, že by si dobrovolně vybralo zábavnou výukovou aplikaci - a o to by bylo strašně fajn, no ne?
    Linux users everywhere, raise your keyboards into the air, we´re warriors, warriors of the world.
    27.2.2015 09:11 luky
    Rozbalit Rozbalit vše Soustava nerovnic
    Resil bych to jako soustavu. Vycet se rozpadne na nekolik soustav podle intervalu. Pocitam ze se jedna o cela cisla, pokud ne, da se na ne prevest nasobenim mocninou desitky podle pozadovaneho poctu mist.

    Po rozpadu vyctu c na 2 intervaly, ukazka pro c z <12; 14>:
      I.   a >= 2
     II.   a <= 9
    III.   b >= 11
     IV.   c >= 12   --->   a + b >= 12
      V.   c <= 14   --->   a + b <= 14
    ------------------------------------
           b <= 12   V. - I.
           a <= 3    V. - III.
    ------------------------------------
           2 <= a <= 3
          11 <= b <= 12
    
    Nyni postupuji tak, ze si postupne volim promenne z intervalu a dopocitam ostatni. Pro a = 2 a dosazeni do zbytku mi zadna omezujici podminka nepribude, takze mam reseni [2; 11], [2; 12]. Pro a 3 mi pribude b <= 11 (z V.), takze tam je jedno reseni [3; 11]. Pote dopocitam c a opakuji pro c = 18.

    Dalsi moznost je resit to graficky a reseni generovat nahodnym vzorkovanim pres obdelnikovou obalku vysledneho utvaru.

    xsubway avatar 27.2.2015 16:03 xsubway | skóre: 13 | blog: litera_scripta_manet
    Rozbalit Rozbalit vše Re: Soustava nerovnic
    Malé zjednodušení zadání:

    Řešil bych to vypuštěním podmínek pro výsledek. Oba parametry vygeneruji podle podminek, pak výpočítám výsledek.

    Zobrazím jeden parametr a výsledek a ptám se na druhý parametr. Zobrazovat mohu více výsledků, ale jen jeden bude správný, ostatní mohou být generované ...

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.