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

Po půl roce od vydání verze 9.0 (zprávička) byla vydána verze 10.0 zvukového serveru PulseAudio. Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 1
dnes 00:33 | Komunita Ladislav Hagara | Komentářů: 0
včera 17:30 | Zajímavý článek

Mozilla.cz informuje, že webový prohlížeč Firefox bude od verze 53 obsahovat integrovaný prohlížeč dat ve formátu JSON. Firefox kromě strukturovaného prohlížení nabídne také možnost filtrace a uložení na disk. Dle plánu by měl Firefox 53 vyjít 18. 4. 2017.

Ladislav Hagara | Komentářů: 1
včera 11:00 | Komunita

Členové a příznivci spolku OpenAlt se pravidelně schází v Praze a Brně. Fotky z pražských srazů za uplynulý rok si můžete prohlédnout na stránkách spolku. Příští sraz se koná už zítra 19. ledna – tentokrát je tématem ergonomie ovládání počítače – tzn. klávesnice, myši a další zařízení. Také budete mít příležitost si prohlédnout pražský hackerspace Brmlab.

xkucf03 | Komentářů: 0
17.1. 21:55 | Komunita

Nadace pro svobodný software (FSF) oznámila aktualizaci seznamu prioritních oblastí (changelog), na které by se měli vývojáři a příznivci svobodného softwaru zaměřit. Jsou to například svobodný operační systém pro chytré telefony, hlasová a video komunikace nebo softwarový inteligentní osobní asistent.

Ladislav Hagara | Komentářů: 15
17.1. 16:44 | Nová verze

Byla vydána verze 2.0.0 knihovny pro vykreslování grafů v programovacím jazyce Python Matplotlib (Wikipedie, GitHub). Přehled novinek a galerie grafů na stránkách projektu.

Ladislav Hagara | Komentářů: 0
17.1. 15:33 | Komunita

V australském Hobartu probíhá tento týden konference linux.conf.au 2017. Na programu je celá řada zajímavých přednášek. Sledovat je lze online.

Ladislav Hagara | Komentářů: 0
17.1. 10:20 | Zajímavý článek

Pavel Tišnovský se v dvoudílném článku na MojeFedora.cz věnuje bitmapovým (rastrovým) grafickým editorům ve Fedoře. V prvním dílu se věnuje editorům MyPaint, MtPaint, Pinta, XPaint, Krita a GIMP. V pokračování pak editorům GNU Paint (gpaint), GrafX2, KolourPaint, KIconEdit a Tux Paint.

Ladislav Hagara | Komentářů: 1
16.1. 17:11 | Komunita

Byl proveden bezpečnostní audit svobodného IMAP a POP3 serveru Dovecot (Wikipedie). Audit byl zaplacen z programu Mozilla Secure Open Source a provedla jej společnost Cure53. Společnost Cure53 byla velice spokojena s kvalitou zdrojových kódu. V závěrečné zprávě (pdf) jsou zmíněny pouze 3 drobné a v upstreamu již opravené bezpečnostní chyby.

Ladislav Hagara | Komentářů: 0
16.1. 15:30 | IT novinky

Nadace Raspberry Pi představila na svém blogu Raspberry Pi Compute Module 3 (CM3 a CM3L), tj. zmenšené Raspberry Pi vhodné nejenom pro průmyslové využití. Jedná se o nástupce Raspberry Pi Compute Module (CM1) představeného v dubnu 2014. Nový CM3 vychází z Raspberry Pi 3 a má tedy dvakrát více paměti a desetkrát větší výkon než CM1. Verze CM3L (Lite) je dodávána bez 4 GB eMMC flash paměti. Uživatel si může připojit svou vlastní. Představena byla

… více »
Ladislav Hagara | Komentářů: 2
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (10%)
 (3%)
 (74%)
 (3%)
 (10%)
Celkem 317 hlasů
 Komentářů: 24, poslední 17.1. 10:14
    Rozcestník
    Reklama

    Dotaz: JAVA - dokonalá čísla

    20.11.2012 19:37 já
    JAVA - dokonalá čísla
    Přečteno: 1133×
    Potřeboval bych napsat program, který bude vypisovat všechna dokonalá čísla, vůbec si stím nevim rady děkuji.

    Téma:

    Dokonalá čísla: přirozené číslo je dokonalé, je-li rovno součtu všech svých kladných dělitelů vyjma sebe sama, např. 6=1+2+3. Napište program, který vyhledá všechna dokonalá čísla z intervalu <1,n> a zapíše je do výstupního souboru. Parametry: n, výstupní soubor.

    Řešení dotazu:


    Odpovědi

    20.11.2012 20:04 DK
    Rozbalit Rozbalit vše Re: JAVA - dokonalá čísla
    tak zjisti vsechny delitele (for cyklus od i=2 treba do cislo/2, muze to byt i odmocnina z cisla), ty sectes, pokud to bude sedet, je to cislo dokonale...
    20.11.2012 20:22 l4m4
    Rozbalit Rozbalit vše Re: JAVA - dokonalá čísla
    Takový program lze nahradit programem, který prostě vypíše po řadě čísla 6, 28, 496 a 8128, protože následující dokonalé číslo už je tímto naivním algoritmem za dobu životnosti počítače nedosažitelné.

    Chceš-li jich vypsat alespoň o pár víc, tak záleží na tom, zda přistoupíš na hypotézu, že neexistuje liché dokonalé číslo (krom 1, které lze v závsilosti na definici také označit za dokonalé). Ta není dokázána, ale existuje-li, je jistě větší než cca 101500, to už dokázáno je. Předpokládejme tedy, že neexistuje.

    Najít sudá dokonalá čísla lze snáz. Mají všechna tvar 2p−1(2p−1), kde p je prvočíslo. Čísla tohoto tvaru jsou sudá dokonalá čísla právě tehdy, když 2p-1 je také prvočíslo. Tudíž stačí ověřit prvočíselnost čísel tohoto tvaru. Tím by ses mohl dostat i s poměrně naivním algoritmem ověřování prvočíselnosti tak o tři dokonalá čísla dál.
    20.11.2012 20:45 l4m4
    Rozbalit Rozbalit vše Re: JAVA - dokonalá čísla
    Nebo takto: Udělej si statickou tabulku s čísly typu long obsahující po řadě:

    6, 28, 496, 8128, 33550336, 8589869056, 137438691328, 2305843008139952128

    Postupně ji procházej a vypisuj čísla, dokud nepřekročí zadané n. Jakmile překročí, vypisování ukonči.

    Toto samozřejmě není ‚školní‘ řešení. Toto je řešení, které by se použilo v praxi: když je něco neměnné, blbě se to určuje a není toho moc, tak se to tabeluje. Když potřebuješ v programu π, tak taky použiješ tabelovanou hodnotu, nepočítáš ho pokaždé znovu.
    21.11.2012 16:41 Jardík
    Rozbalit Rozbalit vše Re: JAVA - dokonalá čísla
    Řešení je jednoduché. Sdělíš zadavateli, že takový program napsat NELZE. Žádný program není schopný vypsat všechna dokonalá čísla, třeba i proto, že jich může být nekonečné množství.
    21.11.2012 18:53 jehovista
    Rozbalit Rozbalit vše Re: JAVA - dokonalá čísla
    Zrejme ti unikla cast "z intervalu <1,n>"
    21.11.2012 19:16 Jardík
    Rozbalit Rozbalit vše Re: JAVA - dokonalá čísla
    To bude asi tím, že je někdo blbej a nedočte si dotaz do konce ^^. Každopádně pokud to n není omezeno, měl by použít něco jako BigInteger, když použije nějakej ten int, tak mu program nebude fungovat správně při zadání "velkého" n, i když než by mu ho to stejně spočítalo, tak prožije 10 životů. Pokud n omezeno je (např. Integer.MAX_VALUE) tak bude nejlepší ona již navržená tabulka. Pokud ji zadání nezakazuje, zadání splní.
    21.11.2012 19:25 Jardík
    Rozbalit Rozbalit vše Re: JAVA - dokonalá čísla
    Ještě si nesmím odpustit připomínku, že bohužel takhle kokotsky se dneska vyučuje programování na spoustě škol, řešit ptákoviny, které byly milionkrát vyřešeny, zbytečné ztrácení času, místo skutečného vyučování programování. Kdyby jim vyučující místo toho přečetl kapitolu ze standardu daného jazyka a vysvětlil ji, udělal by líp. Sečíst a vynásobit dvě čísla umí i cvičená opice.
    Jendа avatar 21.11.2012 20:25 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
    Rozbalit Rozbalit vše Re: JAVA - dokonalá čísla
    Sečíst a vynásobit dvě čísla umí i cvičená opice.
    Tazatel zjevně studuje programování a přitom nedodal ani naivní řešení (třeba s žádostí o pomoc s optimalizací).
    „To jsem nedávno zjistil, že naše televize jde ovládat po síti. Docela mě to překvapilo.“ „Jo? A kdo vám ji ovládal?“
    22.11.2012 09:12 já
    Rozbalit Rozbalit vše Re: JAVA - dokonalá čísla
    Příloha:
    program v příloze vypisuje čísla do 8128 a pak už to nic nevypíše!tak nevim jestli to mám brát jako dobrý zapis či nikoli! když to má být z intervalu <1,n>

    Jendа avatar 22.11.2012 09:53 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
    Rozbalit Rozbalit vše Re: JAVA - dokonalá čísla
    Tak teď už fakt nevím, jestli si děláš prdel, nebo ne :-D
    „To jsem nedávno zjistil, že naše televize jde ovládat po síti. Docela mě to překvapilo.“ „Jo? A kdo vám ji ovládal?“
    22.11.2012 13:07 l4m4
    Rozbalit Rozbalit vše Re: JAVA - dokonalá čísla
    Prostě jen nečetl nic, co zde mezitím bylo o dokonalých číslech napsáno...
    21.11.2012 20:28 l4m4
    Rozbalit Rozbalit vše Re: JAVA - dokonalá čísla
    Řešení klasických problémů v žádném případě není na škodu. A nalezení vhodného algoritmu je jedna ze základních dovedností skutečného programátora.

    Ale proboha na úloze, kde to má smysl. U hledání dokonalých čísel mám pouze možnosti (a) tabelace těch známých (b) napsání programu, který příčetném čase najde houby (c) ponoření se do douhého studia teorie čísel.
    21.11.2012 23:12 karel
    Rozbalit Rozbalit vše Re: JAVA - dokonalá čísla
    Tohle je spíš ideální případ, jak učit studenty přemýšlet o problému. Vsadím se, že polovina lidí co dostane něco takového zadané, napíše naivní algoritmus a pustí to přes noc. Ráno zjistí, že to pořád běží, tak si řekne. "Na netu jsem četl, že java je pomalá, napíšu to v C." Opět to pustí přes noc. Pak si bude na konci semestru v hodnocení předmětu stěžovat na nesmyslná zadání od učitelů. Přitom správný postup je říct, že to nejde a proč. To ale stojí daleko víc námahy.

    Skutečně jsem se s tím několikrát ve škole setkal. Třeba jednou týpek plánoval naprogramovat paralelní program na cluster, aby spočítal optimalizační verzi NP úplné úlohy na grafu o 1000 uzlech.

    22.11.2012 00:41 l4m4
    Rozbalit Rozbalit vše Re: JAVA - dokonalá čísla
    V případě dokonalých čísel ovšem nejde o to, že to nejde.

    Ono to jde. Předně rozdělím situaci na případy, kdy n je menší než 101500, pak vím, že všechna dokonalá čísla jsou tvaru, který jsem uvedl. V případě, že je n větší, jedu hrubou silou, na tom asi pak opravdu prd záleží...

    Takže potřebuji ověřovat prvočíselnost čísel tvaru 2p-1. To opět jde. Kdo má lepší základy teorie čísel, ví, že ověřování prvočíselnosti lze dělat efektivněji než rozkladem. A konkrétně na čísla tvaru 2p-1 existují zase speciální algoritmy.

    Etc.

    Kdyby se jednalo o problém, který je tak těžký, že naivní algoritmus je naprd a state of the art algoritmus je taky naprd, tak budiž. Student zjistí, že některé problémy jsou prostě přesně neřešitelné a je třeba užít lepší či horší heuristiky. Lze diskutovat, jaké heuritstické metody se dají používat na problémy přesně neřešitelné. Například klasický problém obchodního cestujícího.

    Kdyby se jednalo o problém, kde naivní algoritmus už je přijatelně efektivní, ale state of the art algoritmus je nějaký super-efektivní nebo má nějaké jiné pěkné vlastnosti, to je OK. Student nevymyslí state of the art agloritmus, ale dokáže napsat něco, co něco smysluplného dělá, a lze pak diskutovat, jak by to šlo zlepšit. Například rozklad na prvočísla: i poměrně naivní algoritmus faktorizuje cokoli v rozsahu 64bitového integeru za jednotky sekund.

    Problémy, kde jakýkoli algoritmus, který dokáže vymyslet student, je naprd, přitom ale existují algoritmy založené na pokročílých teoriích, které to řeší úplně jinak -- a efektivně, tak takové problémy sice ukáží, že někdy je zapotřebí ke správnému řešení pokročilá matematika, ale z hlediska výuky programování je to depresivní a positivního si z toho student neodnese nic. A to je přesně hledání dokonalých čísel.
    Jendа avatar 22.11.2012 01:02 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
    Rozbalit Rozbalit vše Re: JAVA - dokonalá čísla
    Já bych to tak černě neviděl. Vyučující chtěl prostě zadat studentům nějaký takový problém, na kterém ukážou, že pochopili, co je to for a if, a místo „Eratosthenovo síto po sto šedesáté osmé“ vybral tohle. Proto bych čekal obdobně naivní implementaci jako u toho síta - i když pro hledání prvočísel také máme lepší algoritmy.
    „To jsem nedávno zjistil, že naše televize jde ovládat po síti. Docela mě to překvapilo.“ „Jo? A kdo vám ji ovládal?“
    Jendа avatar 22.11.2012 01:08 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
    Rozbalit Rozbalit vše Re: JAVA - dokonalá čísla
    Přitom správný postup je říct, že to nejde a proč. To ale stojí daleko víc námahy.
    Nevím, jestli je možné tohle očekávat od někoho, kdo právě zápasí s for cyklem, tj. ve výuce se asi nedostali tak daleko k tomu, aby dělali (značně složitou) analýzu, jak a proč počítat dokonalá čísla způsobem, který popisuje l4m4.
    „To jsem nedávno zjistil, že naše televize jde ovládat po síti. Docela mě to překvapilo.“ „Jo? A kdo vám ji ovládal?“
    21.11.2012 20:36 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: JAVA - dokonalá čísla
    Objevit kolo je to nejlepší, jak pochopit jak funguje.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    21.11.2012 23:08 Ivan
    Rozbalit Rozbalit vše Re: JAVA - dokonalá čísla
    Jeste bych dodal, ze i pouziti Javy a BigIntegeru je spatny napad. BigInteger je velice obecny typ pro velka cisla a jeho pouziti je dost pomale. Java opravdu neni urcena na numericku.

    22.11.2012 09:43 já
    Rozbalit Rozbalit vše Re: JAVA - dokonalá čísla
    Příloha:
    program v příloze vypisuje čísla do 8128 a pak už to nic nevypíše!tak nevim jestli to mám brát jako dobrý zapis či nikoli! když to má být z intervalu <1,n>
    22.11.2012 10:48 Atom321 | skóre: 20
    Rozbalit Rozbalit vše Re: JAVA - dokonalá čísla
    Na to je potřeba umět nejen psát, ale i číst. Odpověď už v diskusi je.

    Založit nové vláknoNahoru

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

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