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 01:23 | Komunita

Phoronix spustil 2017 Linux Laptop Survey. Tento dotazník s otázkami zaměřenými na parametry ideálního notebooku s Linuxem lze vyplnit do 6. července.

Ladislav Hagara | Komentářů: 0
včera 22:44 | Nová verze

Po třech měsících vývoje od vydání verze 5.5.0 byla vydána verze 5.6.0 správce digitálních fotografií digiKam (digiKam Software Collection). Do digiKamu se mimo jiné vrátila HTML galerie a nástroj pro vytváření videa z fotografií. V Bugzille bylo uzavřeno více než 81 záznamů.

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

Byla vydána verze 9.3 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ářů: 2
včera 13:53 | Nová verze

Simon Long představil na blogu Raspberry Pi novou verzi 2017-06-21 linuxové distribuce Raspbian určené především pro jednodeskové miniaturní počítače Raspberry Pi. Společně s Raspbianem byl aktualizován také instalační nástroj NOOBS (New Out Of the Box Software). Z novinek lze zdůraznit IDE Thonny pro vývoj v programovacím jazyce Python a především offline verzi Scratche 2.0. Ten bylo dosud možné používat pouze online. Offline bylo možné používat pouze Scratch ve verzi 1.4. Z nového Scratchu lze ovládat také GPIO piny. Scratch 2.0 vyžaduje Flash.

Ladislav Hagara | Komentářů: 0
22.6. 14:24 | Nová verze

Opera 46, verze 46.0.2597.26, byla prohlášena za stabilní. Nejnovější verze tohoto webového prohlížeče je postavena na Chromiu 59. Z novinek lze zmínit například podporu APNG (Animated Portable Network Graphics). Přehled novinek pro vývojáře na blogu Dev.Opera. Oznámení o vydání zmiňuje také první televizní reklamu.

Ladislav Hagara | Komentářů: 0
22.6. 13:37 | IT novinky

I čtenáři AbcLinuxu před dvěma lety vyplňovali dotazníky věnované Retro ThinkPadu. Nyní bylo potvrzeno, že iniciativa Retro ThinkPad je stále naživu a Lenovo připravuje speciální edici ThinkPadu jako součást oslav jeho 25. výročí.

Ladislav Hagara | Komentářů: 19
22.6. 10:22 | Komunita

Bylo oznámeno, že frontend a runtime programovacího jazyka D bude začleněn do kolekce kompilátorů GCC (GNU Compiler Collection). Správcem byl ustanoven Iain Buclaw.

Ladislav Hagara | Komentářů: 7
21.6. 18:47 | IT novinky
Bulharská firma Olimex je známá jako výrobce kvalitních mini arm desek, u nichž se snaží být maximálně open source. Kromě velké otevřenosti taktéž zaručují dlouhodobou podporu výroby, což je vítáno ve firemním prostředí. Nyní firma ohlásila ESP32-GATEWAY, malou IoT desku s Wifi, Bluetooth, Ethernetem a 20 GPIO porty za 22EUR. Tato malá deska je ořezanou verzí ESP32-EVB.
Max | Komentářů: 21
21.6. 18:00 | Zajímavý článek

LinuxGizmos (v dubnu loňského roku přejmenován na HackerBoards a v lednu letošního roku zpět na LinuxGizmos) zveřejnil výsledky čtenářské ankety o nejoblíbenější jednodeskový počítač (SBC) v roce 2017. Letos se vybíralo z 98 jednodeskových počítačů (Tabulky Google). Nejoblíbenějšími jednodeskovými počítači v letošním roce jsou Raspberry Pi 3 Model B, Raspberry Pi Zero W a Raspberry Pi 2 Model B.

Ladislav Hagara | Komentářů: 0
21.6. 14:22 | Pozvánky

Ne-konference jOpenSpace 2017 se koná od 13. do 15. října 2017 v hotelu Farma u Pelhřimova. Registrace účastníků je nutná. Více informací na stránkách ne-konference.

Zdenek H. | Komentářů: 0
Chystáte se pořídit CPU AMD Ryzen?
 (6%)
 (31%)
 (1%)
 (9%)
 (44%)
 (9%)
Celkem 828 hlasů
 Komentářů: 65, poslední 1.6. 19:16
    Rozcestník

    Dotaz: Hledání nejdelší symetrické části řetežce

    Arses avatar 21.11.2006 21:37 Arses | skóre: 4 | blog: arses
    Hledání nejdelší symetrické části řetežce
    Přečteno: 168×
    Zdravim, potřeboval bych poradit s tímto problémem, jak najít nejdelší symetrickou část (třeba 1235555321) a podobně. Potřebuju co nejméně časově náročnou verzi, napadlo mě jenom toto:
    .
    .
    delka = 1;
    for (i = 0; i < n-1; i++)
       for (j = i+1; j < n; j++) {
          sym = 1;
          for (k = 0; i+k < j-k; k++)
             of (a[i+k] != a[j+k])
                 sym = 0;
          if (sym && (j-i+1 > delka))
             delka = j-i+1;
        }
    .
    .
    .
    
    A to je časově poměrně dost náročný

    Jinak n je délka řetězce a délka je velikost onoho nejdelšího úseku... ostatní je jasný bych řekl...

    Díky moc za každou radu

    Odpovědi

    Arses avatar 21.11.2006 22:14 Arses | skóre: 4 | blog: arses
    Rozbalit Rozbalit vše Re: Hledání nejdelší symetrické části řetežce
    Ještě dodám, že nezáleží na jazyku, jde mi čistě jen o ten algoritmus, C sem vzal jenom jako příklad...
    21.11.2006 22:48 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Hledání nejdelší symetrické části řetežce
    To je domácí úkol nebo nějaká soutěž?
    Arses avatar 22.11.2006 07:04 Arses | skóre: 4 | blog: arses
    Rozbalit Rozbalit vše Re: Hledání nejdelší symetrické části řetežce
    Ani jedno, domácí úkol byl napsat to... to sem udělal, ale nejsem s tim spokojenej....
    Matyáš Dvořák avatar 21.11.2006 22:58 Matyáš Dvořák | skóre: 13
    Rozbalit Rozbalit vše Re: Hledání nejdelší symetrické části řetežce
    asi bych pouzil neco ve stylu grep '^\(.\)\(.\).\2\1$' soubor
    21.11.2006 23:03 moira | skóre: 30 | blog: nesmysly
    Rozbalit Rozbalit vše Re: Hledání nejdelší symetrické části řetežce
    http://www.csse.monash.edu.au/~lloyd/tildeAlgDS/Tree/Suffix/

    Zacatek + odstavecek o hledani palindromu. Muzete dosahnout narocnost O(n) ;)
    Překladač ti nikdy neřekne: "budeme kamarádi"
    Arses avatar 22.11.2006 07:07 Arses | skóre: 4 | blog: arses
    Rozbalit Rozbalit vše Re: Hledání nejdelší symetrické části řetežce
    Díky moc, jdu se tim prokousat ;-)
    22.11.2006 12:17 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Hledání nejdelší symetrické části řetežce
    #include <stdio.h>
    
    int main(int argc, char **argv) {
    	char *start, *end, *lpos, *i, *j;
    	int lhalf = 0;
    	if (argc >=1 ) return 1;
    	start = argv[1];
    	for(end = start; *end; end++);
    	for(lpos = i = start; i < end - lhalf; i++) {
    		for(j = i; j>=start && (i + 1 + (i - j) < end) && *j == *(i+1+(i-j)); j--);
    		if( i-j > lhalf) {
    			lhalf = i-j;
    			lpos = j+1;
    		};
    	};
    	if(lhalf) {
    		*(lpos + 2*lhalf) = 0;
    		printf("%s\n", lpos);
    		return 0;
    	} else {
    		return 1;
    	}
    }
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    22.11.2006 12:24 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Hledání nejdelší symetrické části řetežce
    Zatr. Samozřejmě tam má být
    	if (argc <=1 ) return 1;
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    22.11.2006 09:52 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Hledání nejdelší symetrické části řetežce
    Jo hezká složitost O(n). Mám fakt rád tyhle akademické "počítání" složitosti. A režije na vytváření toho stromu, kopírování v paměti a podobně je vosk? Teorie je to hezká, ale skutek utek. Složitost O(n) to má leda tak na papíře.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    22.11.2006 12:30 moira | skóre: 30 | blog: nesmysly
    Rozbalit Rozbalit vše Re: Hledání nejdelší symetrické části řetežce
    Slozitost na vytvoreni stromu je take O(n), je to v tom clanku :)
    Překladač ti nikdy neřekne: "budeme kamarádi"
    22.11.2006 14:13 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Hledání nejdelší symetrické části řetežce
    Vážně? Jseš si tím tak jistý, že by jsi za to dal ruku do ohně? Tak se na to mrkněme pod drobnohledem. Takže v ukkonen95() se nám n krát volá funkce upDate() a canonize(). A copak to tu máme uvnitř funkce upDate()? Na dvou místech se nám tu volá funkce test_and_split() to jednou doknce uvnitř cyklu! Takže jen funkce test_and_split() je volána více než O(n). No pak tu máme další volání funkce canonize() uvnitř funkce upDate() a zase uvnitř cyklu! Funkce canonize() je opět volána vícě než O(n)! No a aby to nebylo málo, tak funkce canonize() opět obsahuje cyklus z čehož vyplývá, že ta část uvnitř cyklu se provede ještě víckrát než samotná funkce canonize(), která sama o sobě není volána O(n), ale víckrát. Takže prdlačky švagrová. Ten algoritmus není O(n) ani kdybych zavřel obě oči a praštil se palicí do hlavy. Dokonce bych ho typoval tak na O(n^3) ná základě tohoto rozboru. Když to srovnám s kódem co jsem poslal, který má nejhorší odhad (n+2)*n/8 tedy O(n^2) a to počítám opravdu ten nejhorší případ. Nesmíš taky věřit všemu co se kde píše. Ono takhle akademicky to vypadá dobře, ale když jdeš po tom algoritmu do důsledku tak se nám tam n krát zavolá cosi co má v sobě cyklus uvnitř něhož se nám zase zavolá ? krát cosik a to cosik má v sobě cyklus, která může být zavolán m krát, přičemž hodnota m je nějaká konstanta*n. Tedy přinejmenším O(n^2), ale taky možná O(n^3) protože neznám ?. Abych pravdu řek, nechce se mi po tom pátrat, ale vzhledem k tomu, že je to cosi se stromy, tak tomu dejme O(n^2*log2n) ať nežeru. O(n) fakt ani omylem.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    22.11.2006 14:33 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Hledání nejdelší symetrické části řetežce
    Až na to, že všechny vaše úvahy jsou jen horní odhady…
    22.11.2006 15:12 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Hledání nejdelší symetrické části řetežce
    Vážně? Ve funkci ukkonen95() jsou funkce upDate() a canonize() volány vždy n krát. Uvnitř funkce upDate() je funkce test_and_split() vždy volána nejméně jednou, ale může být i více krát. Stejně tak funkce canonize() je vždy n krát volána přímo z ukkonen95() a může být volána i z upDate() a to i více než jednou. Takže tu máme dvě funkce, které mohou být volány n*a, kde a není nikdy menší než 1, ale a s velkou pravděpodobností závisí na složitosti stromu tedy asi na O(log2n). No a v samotné funkci canonize() máme cyklus, který závisí na délce subřetězce, tedy na n. Takže tvrdit o něčem takovém, že to má složitost O(n), je prostě lež jako věž. To neukecáte, ani kdyby jste se na hlavu postavil. Jen proto, že se v javě až tak nevyznám, jsem možná přehlédl ještě nějaké to kopírování v paměti zase se složitostí O(n), které nám z toho všeho pěkně udělají nejméně O(n^2) jako když vyšije. Mužete to milionkrát okecat, ale O(n) to prostě není.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    22.11.2006 15:19 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Hledání nejdelší symetrické části řetežce
    Nehodlám nic ukecávat, to, co jste předvedl, nemá s důkazem dolního odhadu časové složitosti nic společného a silácké výrazy typu "prdlačky švagrová" nebo "ani kdybych zavřel obě oči a praštil se palicí do hlavy" tomu nijak nepomohou. Nevidím sice na první pohled, že to je lineární, ale stejně tak bych si nedovolil na základě tak chatrných úvah, jako jsou ty vaše, rezolutně prohlášovat, že to lineární není.
    22.11.2006 16:03 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Hledání nejdelší symetrické části řetežce
    Nehodlám nic ukecávat, to, co jste předvedl, nemá s důkazem dolního odhadu časové složitosti nic společného a ...
    Ahá, takže ono jde o dolní odhad složitosti, tak to ten můj algoritmus má taky dolní odhad O(n). Pro řetězec neobsahující žádnou dvojici za sebou jdoucích stejných znaků se provede právě n-1 porovnání. Aha, takže proč to dělají tak složitě? Ten můj algoritmus je mnohem jednodužší a má stejný dolní odhad složitosti :-)
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    22.11.2006 16:11 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Hledání nejdelší symetrické části řetežce
    Achich ouvej. Chcete-li vyvrátit tvrzení, že univerzální horní odhad složitosti je O(n), potřebujete najít nějakou posloupnost vstupů, pro niž je dolní odhad složitosti není O(n), tj. označíme-li jejich složitosti t_n, posloupnost t_n/n není omezená. Takže chcete-li vyvrátit horní odhad (a právě o to se celou dobu snažíte), potřebujete udělat dolní odhad. Dolní odhad jste sice udělal, ale dokázal jste pouze cn, což nic nevyvrací, všechny další výroky, že je to určitě n log n a pravděpodobně n^2, jsou jen mlha, ne důkaz.
    22.11.2006 15:22 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Hledání nejdelší symetrické části řetežce
    Ještě doplnění: pozorný čtenář si toho jistě všimne sám, ale pro ty méně pozorné zdůrazním, že jediné, co jste svou v tomto příspěvku úvahou skutečně dokázal, je skutečnost, že časová složitost je alespoň O(n), což není nijak v rozporu s příspěvkem, do kterého jste se tak vehementně obul…
    22.11.2006 16:22 podlesh | skóre: 38 | Praha
    Rozbalit Rozbalit vše Re: Hledání nejdelší symetrické části řetežce
    Pro ty méně i více pozorné bych ještě dodal, že přehození pojmů "horní" a "dolní" odhad celou tuto diskusi naprosto dorazilo. Doporučuji začít znovu.
    22.11.2006 16:24 podlesh | skóre: 38 | Praha
    Rozbalit Rozbalit vše Re: Hledání nejdelší symetrické části řetežce
    Aha, už vidím podrobnější vysvětlení, teď to dává smysl :-)
    22.11.2006 15:12 Martin Beránek | skóre: 33 | blog: mousehouse | Brno
    Rozbalit Rozbalit vše Re: Hledání nejdelší symetrické části řetežce
    Mám fakt rád tyhle akademické "počítání" složitosti.
    V tom pripade vam doporucuji toto PDF.
    never use rm after eight
    22.11.2006 15:24 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Hledání nejdelší symetrické části řetežce
    To je všechno hezké, ale ten algoritmus nemá složitost O(n), ale větší.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.

    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.