Byla vydána nová verze 4.5 (𝕏, Bluesky) multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy v příspěvku na blogu.
Byla vydána verze 3.0 (Mastodon) nástroje pro záznam a sdílení terminálových sezení asciinema (GitHub). S novou verzí formátu záznamu asciicast v3, podporou live streamingu a především kompletním přepisem z Pythonu do Rustu.
Canonical oznámil, že bude podporovat a distribuovat toolkit NVIDIA CUDA (Wikipedie) v Ubuntu.
Tržní hodnota americké společnosti Alphabet, která je majitelem internetového vyhledávače Google, dnes poprvé překonala hranici tří bilionů dolarů (62,1 bilionu Kč). Alphabet se připojil k malé skupině společností, které tuto hranici pokořily. Jsou mezi nimi zatím americké firmy Nvidia, Microsoft a Apple.
Spojené státy a Čína dosáhly dohody ohledně pokračování populární čínské platformy pro sdílení krátkých videí TikTok v USA. V příspěvku na síti Truth Social to dnes naznačil americký prezident Donald Trump. Dosažení rámcové dohody o TikToku vzápětí oznámil americký ministr financí Scott Bessent, který v Madridu jedná s čínskými představiteli o vzájemných obchodních vztazích mezi USA a Čínou. Bessentova slova později potvrdila také čínská strana.
MKVToolNix, tj. sada nástrojů pro práci s formátem (medialnym kontajnerom) Matroska, byl vydán ve verzi 95.0. Podpora přehrávání formátu Matroska míří do Firefoxu [Bug 1422891, Technický popis]. Přehrávání lze již testovat ve Firefoxu Nightly.
Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 211. sraz, který proběhne v pátek 19. září od 18:00 ve Studentském klubu U Kachničky na Fakultě informačních technologií Vysokého učení technického na adrese Božetěchova 2/1. Na srazu proběhne přednáška Jiřího Eischmanna o nové verzi prostředí GNOME 49. Nemáte-li možnost se zúčastnit osobně, přednáškový blok bude opět streamován živě na server VHSky.cz a následně i zpřístupněn záznam.
Microsoft se vyhnul pokutě od Evropské komise za zneužívání svého dominantního postavení na trhu v souvislosti s aplikací Teams. S komisí se dohodl na závazcích, které slíbil splnit. Unijní exekutivě se nelíbilo, že firma svazuje svůj nástroj pro chatování a videohovory Teams se sadou kancelářských programů Office. Microsoft nyní slíbil jasné oddělení aplikace od kancelářských nástrojů, jako jsou Word, Excel a Outlook. Na Microsoft si
… více »Samba (Wikipedie), svobodná implementace SMB a Active Directory, byla vydána ve verzi 4.23.0. Počínaje verzí Samba 4.23 jsou unixová rozšíření SMB3 ve výchozím nastavení povolena. Přidána byla podpora SMB3 přes QUIC. Nová utilita smb_prometheus_endpoint exportuje metriky ve formátu Prometheus.
Správcovský tým repozitáře F-Droid pro Android sdílí doporučení, jak řešit žádosti o odstranění nelegálního obsahu. Základem je mít nastavené formální procesy, vyhrazenou e-mailovou adresu a být transparentní. Zdůrazňují také důležitost volby jurisdikce (F-Droid je v Nizozemsku).
. . 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
#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; } }
if (argc <=1 ) return 1;
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.
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í.
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 Mám fakt rád tyhle akademické "počítání" složitosti.V tom pripade vam doporucuji toto PDF.
Tiskni
Sdílej: