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í
×
    včera 16:44 | Nová verze

    Bylo oznámeno vydání Fedora Linuxu 43. Ve finální verzi vychází šest oficiálních edic: Fedora Workstation a Fedora KDE Plasma Desktop pro desktopové, Fedora Server pro serverové, Fedora IoT pro internet věcí, Fedora Cloud pro cloudové nasazení a Fedora CoreOS pro ty, kteří preferují neměnné systémy. Vedle nich jsou k dispozici také další atomické desktopy, spiny a laby. Podrobný přehled novinek v samostatných článcích na stránkách Fedora Magazinu: Fedora Workstation, Fedora KDE Plasma Desktop, Fedora Silverblue a Fedora Atomic Desktops.

    Ladislav Hagara | Komentářů: 0
    včera 15:22 | IT novinky

    Elon Musk oznámil (𝕏) spuštění internetové encyklopedie Grokipedia (Wikipedia). Zatím ve verzi 0.1. Verze 1.0 prý bude 10x lepší, ale i ve verzi 0.1 je podle Elona Muska již lepší než Wikipedia.

    Ladislav Hagara | Komentářů: 10
    včera 05:44 | Komunita

    PSF (Python Software Foundation) po mnoha měsících práce získala grant ve výši 1,5 milionu dolarů od americké vládní NSF (National Science Foundation) v rámci programu "Bezpečnost, ochrana a soukromí open source ekosystémů" na zvýšení bezpečnosti Pythonu a PyPI. PSF ale nesouhlasí s předloženou podmínkou grantu, že během trvání finanční podpory nebude žádným způsobem podporovat diverzitu, rovnost a inkluzi (DEI). PSF má diverzitu přímo ve svém poslání (Mission) a proto grant odmítla.

    Ladislav Hagara | Komentářů: 21
    včera 04:55 | Nová verze

    Balík nástrojů Rust Coreutils / uutils coreutils, tj. nástrojů z GNU Coreutils napsaných v programovacím jazyce Rust, byl vydán ve verzi 0.3.0. Z 634 testů kompatibility Rust Coreutils s GNU Coreutils bylo úspěšných 532, tj. 83,91 %. V Ubuntu 25.10 se již používá Rust Coreutils místo GNU Coreutils, což může přinášet problémy, viz například nefunkční automatická aktualizace.

    Ladislav Hagara | Komentářů: 0
    27.10. 21:00 | IT novinky

    Od 3. listopadu 2025 budou muset nová rozšíření Firefoxu specifikovat, zda shromažďují nebo sdílejí osobní údaje. Po všech rozšířeních to bude vyžadováno někdy v první polovině roku 2026. Tyto informace se zobrazí uživateli, když začne instalovat rozšíření, spolu s veškerými oprávněními, která rozšíření požaduje.

    Ladislav Hagara | Komentářů: 0
    27.10. 17:11 | Humor

    Jste nuceni pracovat s Linuxem? Chybí vám pohodlí, které vám poskytoval Microsoft, když vás špehoval a sledoval všechno, co děláte? Nebojte se. Recall for Linux vám vrátí všechny skvělé funkce Windows Recall, které vám chyběly.

    Ladislav Hagara | Komentářů: 1
    27.10. 16:11 | Komunita

    Společnost Fre(i)e Software oznámila, že má budget na práci na Debianu pro tablety s cílem jeho vyžívání pro vzdělávací účely. Jako uživatelské prostředí bude použito Lomiri.

    Ladislav Hagara | Komentářů: 1
    26.10. 17:11 | IT novinky

    Proběhla hackerská soutěž Pwn2Own Ireland 2025. Celkově bylo vyplaceno 1 024 750 dolarů za 73 unikátních zranitelností nultého dne (0-day). Vítězný Summoning Team si odnesl 187 500 dolarů. Shrnutí po jednotlivých dnech na blogu Zero Day Initiative (1. den, 2. den a 3. den) a na YouTube.

    Ladislav Hagara | Komentářů: 4
    26.10. 13:33 | Komunita

    Byl publikován říjnový přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Pracuje se na podpoře M3. Zanedlouho vyjde Fedora Asahi Remix 43. Vývojáře lze podpořit na Open Collective a GitHub Sponsors.

    Ladislav Hagara | Komentářů: 0
    25.10. 15:44 | Zajímavý software

    Iniciativa Open Device Partnership (ODP) nedávno představila projekt Patina. Jedná se o implementaci UEFI firmwaru v Rustu. Vývoj probíhá na GitHubu. Zdrojové kódy jsou k dispozici pod licencí Apache 2.0. Nejnovější verze Patiny je 13.0.0.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (36%)
     (47%)
     (20%)
     (19%)
     (23%)
     (17%)
     (21%)
     (17%)
     (18%)
    Celkem 279 hlasů
     Komentářů: 14, poslední 14.10. 09:04
    Rozcestník

    Dotaz: Perl - Pole a třídění

    27.11.2010 14:38 Radek Podskubka | skóre: 2
    Perl - Pole a třídění
    Přečteno: 441×
    Ahoj, potřebuju v perlu seřadit nějaké hodnoty za tím účelem, abych mohl určit jejich medián. Problém je v tom, že k těmto hodnotám přísluší ještě nějaké odchylky. Data ukládám do pole z texťáku, kde jsou v jednom sloupci hodnoty a ve druhém jejich chyby. A medián určuju pro jednotlivé dny (tedy v prvním sloupci figuruje ještě nějaké datum, ale to není podstatné, navíc je to vidět z kódu). V přiložený kód funguje dobře, v podstatě jen určuje medián příslušných hodnot. Ovšem já bych potřeboval do výstupu ještě k mediánu vytisknout odchylku, která k němu přísluší (tedy NE medián odchylek). Problém tedy nastává v okamžiku, kdy se provádí příkaz
    @vars = sort @{$dailyvars{$_}};
    Pokud bych měl tedy uloženy odchylky v podobném poli jako hodnoty, a tímto způsobem zamíchám s jejich pořadím,tak už nepřísluší například pátý prvek pole vars k pátému prvku pole odchylek. Principielně je snad řešení snadné, prostě kromě hodnot je třeba naskládat do pole @{dailyvars{1}} ještě odkazy na konkrétní prvky pole odchylek a na ty se potom odvolávat. Já jsem ale v Perlu doccela nováček a netuším jak tohle zapsat nebo mě nenapadá nějaké snažší řešení. Děkuji za každou radu.

    Celý výpis kódu je zde
    while (<>)
    {
        if (/^#/) { next; }
        /([\d-]+) (\d+) ([\d\.]+) ([\d\.]+)/ or die "daily_median.pl: Error processing line: $_";
        if (! exists $dailyvars{$1}) { @{$dailyvars{$1}} = ( $3 ); $count{$1} = 1; }
        else { push @{$dailyvars{$1}}, $3; $count{$1} += 1; }
    }
    foreach (sort keys %dailyvars)
    {
        @vars = sort @{$dailyvars{$_}};
        $n = $#vars + 1;
        if ($n % 2 == 1) {
    	$median = $vars[($n - 1) / 2]; }
        else {
    	$median = ($vars[$n / 2] + $vars[$n / 2 - 1]) / 2; }
        print $_ . " $median " . $count{$_} . "\n";
    }
    

    Řešení dotazu:


    Odpovědi

    Řešení 2× (Radek Podskubka (tazatel), pht)
    27.11.2010 15:42 buff | skóre: 10 | blog: buff
    Rozbalit Rozbalit vše Re: Perl - Pole a třídění
    Myslím, že Tvé řešení je špatně: sort v perlu defaultně třídí lexikograficky, nikoliv číselně.

    K problému: pokud by při načítání byla odchylka např. v $4:
    if (! exists $dailyvars{$1}) { @{$dailyvars{$1}} = ({var => $3, odchylka => $4}); $count{$1} = 1; }
    else { push @{$dailyvars{$1}}, {var => $3, odchylka => $4}; $count{$1} += 1; }
    
    ...
    
    @vars = sort { $a->{var} <=> $b->{var} } (@{$dailyvars{$_}});
    
    ...
    
    $median = $vars[($n - 1) / 2]->{var};
    
    
    A další změny analogicky.

    Vtip je v tom, že do $dailyvars{$den} neukládáš jen hodnoty, ale ukazatele na hash, který má dva klíče: var a odchylka. Tím si podržíš ty přidružené hodnoty pospolu.

    Doufám, že je to trochu srozumitelné, spěchám, tak to vysvětluju tak nějak narychlo a ne moc exaktně. Podívej se do manuálu na sort, tam uvidíš, že to, co dávám do prvních složených závorek, je funkce, která určuje, podle čeho se bude třídit.
    27.11.2010 17:16 Radek Podskubka | skóre: 2
    Rozbalit Rozbalit vše Re: Perl - Pole a třídění
    Dík moc. To je určitě velmi efektivní řešení. Pomohlo mi to.
    wamba avatar 27.11.2010 18:16 wamba | skóre: 38 | blog: wamba
    Rozbalit Rozbalit vše Re: Perl - Pole a třídění

    popř. něco takového

    use 5.010;
    use warnings;
    use strict;

    my %dailyvars;

    while (<>) {
    next if /^#/;    #ignoruj komentáře
    /(?<date>[\d-]+) \d+ (?<var>[\d\.]+) (?<odchylka>[\d\.]+)/ #rozeber řádek
    or die "daily_median.pl: Error processing line: $_";

    push @{ $dailyvars{ $+{date} }{vars} },
    $+{var};    #přidej hodnotu mezi hodnoty
    push @{ $dailyvars{ $+{date} }{'odchylky'} },
    $+{odchylka};    #přidej odchylku mezi odchylky
    $dailyvars{ $+{date} }{count}++;    #přičti k počtu 1
    }

    foreach ( sort keys %dailyvars ) {      #pro všechny  dny (seřazené)
    my $median;
    my @vars = sort { $a <=> $b } @{ $dailyvars{$_}{vars} };  #srovnej hodnoty
    my $n = @vars;                                            #počet  hodnot;

    if ( $n % 2 == 1 ) {
    $median = $vars[ ( $n - 1 ) / 2 ]
    ;    #vypočti median pro  sudý počet hondot
    }
    else {
    $median = ( $vars[ $n / 2 ] + $vars[ $n / 2 - 1 ] )
    / 2;    #vypočti median pro lichý počet hodnot
    }

    #vypiš výsledek
    say $_
    . "\tmedian: $median "
    . "\tpocet: $dailyvars{$_}{count} "
    . "\todchylky:  @{ $dailyvars{$_}{odchylky} }";
    }

    This would have been so hard to fix when you don't know that there is in fact an easy fix.

    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.