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 20:00 | Komunita

OneDrive pro firmy je již ve webových prohlížečích na Linuxu stejně rychlý jako na Windows. Microsoft opravil chybu z listopadu loňského roku. OneDrive pro firmy běžel na Linuxu mnohem pomaleji než na Windows. V popisu chyby bylo uvedeno, že stačilo v prohlížeči na Linuxu nastavit v user-agentu Windows a vše se zrychlilo. Odpovědí Microsoftu bylo (Internet Archive: Wayback Machine), že Linux není podporován. Po bouřlivých diskusích na redditu i Hacker News byla chyba nalezena a opravena.

Ladislav Hagara | Komentářů: 2
dnes 19:00 | Zajímavý projekt

Byla vyhlášena soutěž Hackaday Prize 2017. Soutěž je určena vývojářům open source hardwaru. Pro výherce je připraveno celkově 250 tisíc dolarů. Každý ze 120 finalistů získá tisíc dolarů. Nejlepší pak navíc 50, 30, 20, 15, 10 a 5 tisíc dolarů. Jedná se již o čtvrtý ročník soutěže. V roce 2014 zvítězil projekt globální sítě open source pozemních satelitních stanic SatNOGS. V roce 2015 zvítězil open source systém pro řízení elektrických invalidních vozíků pohybem očí Eyedriveomatic. V roce 2016 zvítězil modulární robot Dtto.

Ladislav Hagara | Komentářů: 0
dnes 15:00 | Bezpečnostní upozornění

Byla vydána Samba ve verzích 4.6.1, 4.5.7 a 4.4.12. Řešen je bezpečnostní problém CVE-2017-2619. Pomocí symbolických odkazů a souběhu (symlink race) lze "teoreticky" získat přístup k souborům, které nejsou sdíleny. Linuxové distribuce jsou postupně aktualizovány (Debian).

Ladislav Hagara | Komentářů: 0
dnes 07:43 | Nová verze

Na Steamu se objevil port hry Arma: Cold War Assault (Operation Flashpoint) pro Mac a Linux. … více »

creon | Komentářů: 25
dnes 05:55 | Nová verze

Po 18 měsících od vydání verze 8.0 byla vydána verze 9.0 open source alternativy GitHubu, tj. softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech, GitLab. Představení nových vlastností v příspěvku na blogu a na YouTube.

Ladislav Hagara | Komentářů: 0
dnes 03:33 | Komunita

Platnost posledního patentu souvisejícího s Dolby Digital (AC-3) vypršela. Po MP3 se tak do Fedory oficiálně dostane také kodek AC-3.

Ladislav Hagara | Komentářů: 5
dnes 00:44 | Komunita

Feral Interactive, společnost zabývající se vydáváním počítačových her pro operační systémy macOS a Linux, nabízí své hry na Steamu vývojářům open source 3D grafické knihovny Mesa zdarma. Podmínkou je minimálně 25 commitů za posledních 5 let. Stejnou nabídku dostali vývojáři knihovny Mesa v roce 2015 od Valve. O rok dříve dostali od Valve tuto nabídku vývojáři Debianu a Ubuntu.

Ladislav Hagara | Komentářů: 0
včera 23:55 | Nová verze

Opera 44, verze 44.0.2510.857, byla prohlášena za stabilní. Nejnovější verze tohoto webového prohlížeče je postavena na Chromiu 57. Z novinek vývojáři Opery zdůrazňují podporou Touch Baru na nejnovějších MacBoocích Pro (gif). Přehled novinek pro vývojáře na blogu Dev.Opera.

Ladislav Hagara | Komentářů: 1
včera 20:56 | Pozvánky

V úterý 28. dubna se koná další Prague Containers Meetup. Přijďte si zopakovat, jak psát kvalitnější Dockerfile a jaké novinky a ulehčení přináší ansible-container, který vám umožní spravovat celý životní cyklus vašeho kontejneru. Místo konání: Concur, Bucharova 11, Praha-Stodůlky.

little-drunk-jesus | Komentářů: 0
včera 17:00 | Nová verze

Po půl roce od vydání verze 3.22 bylo vydáno GNOME ve verzi 3.24 s kódovým názvem Portland. Vydání obsahuje 28 459 změn od přibližně 753 přispěvatelů. Z novinek lze zmínit funkci noční světlo, přepracovaná nastavení, aplikaci Recepty, zdokonalenou oblast pro upozornění nebo zdokonalený webový prohlížeč. Podrobnosti i s náhledy v poznámkách k vydání a v novinkách pro vývojáře a správce systémů.

Ladislav Hagara | Komentářů: 10
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (14%)
 (2%)
 (72%)
 (3%)
 (10%)
Celkem 920 hlasů
 Komentářů: 72, poslední 1.3. 11:16
    Rozcestník

    Dotaz: náhrada rekurze v Pythonu ?

    11.3.2010 14:34 Ivon
    náhrada rekurze v Pythonu ?
    Přečteno: 429×
    Ahoj,

    narazil jsem na problém a nevím jak se pohnout z místa :-/

    K jedné úloze z teorie sítí potřebuju napsat funkci, která vrátí permutaci všech prvků seznamu, kterej se jí předá jako parametr. Ať jsem nad tím koumal jak chtěl, řešení vždycky vedlo k rekurzi. Problém nastane, pokud je seznam relativně velký. Program spadne na výjimku "RuntimeError: maximum recursion depth exceeded in cmp" :-(

    def permute(lst):
        if lst == []:
            return [[]]
        else:
            return [[el]+chunk for el in lst for chunk in permute([ x for x in lst if x != el])]
    

    Dá se tý rekurzi nějak vyhnout nebo dá se spustit python s větším zásobníkem ?

    Odpovědi

    11.3.2010 15:10 Ivon
    Rozbalit Rozbalit vše Re: náhrada rekurze v Pythonu ?
    Zapomněl jsem doplnit, že v seznamu nejsou duplicity. Z tý ukázky to je ale vidět.
    11.3.2010 15:22 Dr. Eddy | skóre: 9 | blog: glog | České Budějovice
    Rozbalit Rozbalit vše Re: náhrada rekurze v Pythonu ?
    Ahoj,

    muzes nejak vysvetlit, jak generujes permutaci nebo presne zadani? Python neumim, ale ten problem me zajima, a zajima me vic i kvuli tomu, ze by se to melo dat prepsat do cyklu...
    Víťa Šmíd avatar 11.3.2010 15:23 Víťa Šmíd | skóre: 41 | blog: vituv_blog | Praha
    Rozbalit Rozbalit vše Re: náhrada rekurze v Pythonu ?
    When Chuck Norris plays Monopoly, it affects the actual world economy. | Matematika pro normální lidi
    11.3.2010 16:00 Ivon
    Rozbalit Rozbalit vše Re: náhrada rekurze v Pythonu ?
    Díky. Vidím že se to obchází přes iterátory.

    Na druhou stranu ten kód už nevypadá tak elegantně, resp. zatím se mi nepodařilo přesně vyčíst ten algoritmus. Nebyla by nějaká jednodušší verze ? Já vím, to už chci moc ;-)

    Víťa Šmíd avatar 11.3.2010 16:24 Víťa Šmíd | skóre: 41 | blog: vituv_blog | Praha
    Rozbalit Rozbalit vše Re: náhrada rekurze v Pythonu ?
    Obchází? To je elegantní koncept, ne obcházení :-). Ale každopádně jde o built-in modul v C, nic efektivnějšího už v Pythonu nenajdeš.
    When Chuck Norris plays Monopoly, it affects the actual world economy. | Matematika pro normální lidi
    11.3.2010 16:34 Ivon
    Rozbalit Rozbalit vše Re: náhrada rekurze v Pythonu ?
    Sry, mě jako neprogramátorovi to přišlo jako obcházení :-)

    Jo a můžu si za to sám, že si neprolezu standardní knihovny. Z toho itertools.permutations to leze opravdu fofrem.?

    11.3.2010 15:55 l4m4
    Rozbalit Rozbalit vše Re: náhrada rekurze v Pythonu ?
    Tvůj problém není přetečení zásobníku. Tvůj problém je, že generuješ seznam všech permutací, jehož velikost roste s počtem prvků jako nn.

    Nejjednodušší je použít itertools, jak radí kolega. Pokud si to chceš psát sám, tak si najdi, jak se permutace vygeneruje z jejího pořadového čísla (google, wikipedia, je to všude, a jde to i snadno vymyslet), takže můžeš generovat permutace po jedné, stejně jako to dělají itertools.
    11.3.2010 16:08 Ivon
    Rozbalit Rozbalit vše Re: náhrada rekurze v Pythonu ?
    Pokud odhlédnu od implementace, tak tahle úloha přece vede obecně k řešení n^n prvků ?

    Ok, na to generování podle pořadového čísla se juknu. Díky.

    11.3.2010 16:18 Ivon
    Rozbalit Rozbalit vše Re: náhrada rekurze v Pythonu ?
    resp. n!/(n-k)!, což by v tomhle případě bylo n!/0! = n!
    11.3.2010 16:25 l4m4
    Rozbalit Rozbalit vše Re: náhrada rekurze v Pythonu ?
    Ano, pokud chceš projít všechny permutace z n prvků, tak jich bude n!.

    Nicméně je dost rozdíl, zda přitom zaplácneš O(n) nebo O(n*n!) paměti.
    12.3.2010 09:50 Filip Jirsák | skóre: 66 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: náhrada rekurze v Pythonu ?
    Rekurzi vždycky můžete nahradit tak, že si ten cyklus a zásobník napíšete sám. Ona to tedy technicky vzato pořád bude rekurze, ale už nebude omezená velikostí zásobníku volání, ale pouze velikostí vašeho zásobníku – a ten může zabrat celou paměť, můžete si ho klidně uložit na disk atd. Není to tedy jiný způsob řešení, pouze si pro rekurzi výrazně zvýšíte limity.
    12.3.2010 10:10 lofcek
    Rozbalit Rozbalit vše Re: náhrada rekurze v Pythonu ?
    Neviem, co sa Ti na iteratoroch nepaci - jedina zmena v tvojom programe je, ze namiesto zoznamu zoznamov vratim proste vzdy len zoznam. A je na iteratore aby si zapamatal, kde skoncil a pri nasledujucej iteracii vratil to, co ma.

    A najma uspokojivo riesi pamatove naroky - povodny zoznam bude uz pre 6. mozno 7 unikatnych prvkov dost velky a iteratory funguju aj dalej bez vyrazneho spomalenia.
    def permute(lst):
        if not lst:
            yield []
        else:
            for item in lst:
                for chunk in permute([x for x in lst if x != item]):
                    yield [item] + chunk
    
    Ak by som mal tento program vylepsovat, tak by som ho prepisal tak, aby nevratil iterovany zoznam zoznamov, ale iterovany zoznam toho co dostal na vstupe (cize ak agrumentom bude string - vratil by zoznam stringov, ak tuple, zoznam tuplov...)
    12.3.2010 17:14 Ivon
    Rozbalit Rozbalit vše Re: náhrada rekurze v Pythonu ?
    Nice, diky.
    Fuky avatar 12.3.2010 10:40 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: náhrada rekurze v Pythonu ?
    $ cat permutations.py
    #! /usr/bin/env python3                             
    
    import sys
    import itertools
    
    for item in itertools.permutations(sys.argv[1:]):
        print("".join(item))
    $ ./permutations.py A B C
    ABC
    ACB
    BAC
    BCA
    CAB
    CBA
    

    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.