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 12:00 | Nová verze

    Vývojové prostředí Qt Creator bylo vydáno ve verzi 20 (seznam změn). Novinky zahrnují hlavně rozšíření pro integraci LLM agentů nebo minimalistický editační režim uživatelského rozhraní („zen mode“).

    |🇵🇸 | Komentářů: 0
    včera 10:22 | Humor

    Už jste se prolétli na webu Google Earth? Přibyl tam Simulátor letu (Nástroje / Simulátor letu). Funguje i bez účtu Google [𝕏].

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

    Byla vydána nová verze 4.7 (𝕏, Bluesky, Mastodon) multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 2
    18.6. 13:33 | Nová verze

    Mastodon (Wikipedie) - sociální síť, která není na prodej - byl vydán ve verzi 4.6. Přehled novinek s náhledy v oznámení na blogu.

    Ladislav Hagara | Komentářů: 0
    18.6. 12:44 | IT novinky

    V Edici CZ.NIC, knižní řady správce české národní domény, vychází nová kniha Martina Malého Kódy, buildy, firmwary. Autor po půl roce od vydání předchozího titulu přichází se svou již sedmou knihou, tentokrát zaměřenou na vývoj programového vybavení pro embedded zařízení. Publikace s podtitulem Základy vývojářského řemesla pro tvůrce hobby elektroniky nabízí praktického průvodce pro všechny, kdo své projekty vytvořené s Arduinem

    … více »
    Ladislav Hagara | Komentářů: 0
    18.6. 11:44 | Komunita

    V Brně na FIT VUT probíhá dvoudenní open source komunitní konference DevConf.CZ 2026. Na programu je celá řada zajímavých přednášek, lightning talků, meetupů a workshopů. Přednášky lze sledovat i online na YouTube kanálu konference. Aktuální dění lze sledovat na Matrixu, 𝕏 nebo Mastodonu.

    Ladislav Hagara | Komentářů: 0
    18.6. 04:22 | Nová verze

    Byla vydána nová verze 15.1 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 1
    17.6. 19:11 | Zajímavý projekt

    Vývojáři Ubuntu představili projekt Myna, tj. iniciativu zaměřenou na přidání funkce převodu řeči na text do prostředí desktopu Ubuntu. Dle plánu již v Ubuntu 26.10.

    Ladislav Hagara | Komentářů: 6
    17.6. 18:33 | Zajímavý software

    Společnost Epic Games představila nový open source systém pro správu verzí Lore navržený pro "bezprecedentní škálovatelnost dat i týmů a optimalizovaný pro projekty, včetně her a zábavy, které kombinují kód s velkými binárními soubory, aby uspokojil potřeby vývojářů i umělců". Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

    Ladislav Hagara | Komentářů: 0
    17.6. 15:33 | IT novinky

    Úřad pro ochranu hospodářské soutěže (ÚOHS) provedl v říjnu 2024 místní šetření u společnosti Seznam.cz. Úřad prověřoval důvodné podezření na možné protisoutěžní jednání, konkrétně zneužití dominantního postavení. Krajský soud v Brně v květnu 2025 konstatoval, že toto šetření bylo nezákonné. Nejvyšší správní soud (NSS) včera rozhodl, že šetření bylo provedeno v souladu se zákonem. Krajský soud bude muset případ posoudit znovu.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (8%)
     (2%)
     (16%)
     (31%)
     (3%)
     (6%)
     (3%)
     (15%)
     (26%)
    Celkem 1946 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: Bash aritmeticky priemer

    6.8.2007 10:50 Mountains
    Bash aritmeticky priemer
    Přečteno: 1019×
    Zdravim, potreboval by som urobit skript ktory nacita hodnoty zo suboru a urobi s nich aritmeticky priemer. Dakujem za pomoc.

    Odpovědi

    6.8.2007 11:40 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    Tady máš tři různé algoritmy včetně generování testovacího souboru a měření doby výpočtu.
    #!/usr/bin/python
    import random, time
    
    print 'Wait ...'
    fw = file('cisla.txt', 'w')
    for i in range(1000000):
        fw.write('%f\n' %(random.random()))
    fw.close()
    
    start = time.time()
    s = 0
    lines = 0
    for line in file('cisla.txt'):
        s += float(line)
        lines += 1
    print s/lines
    print time.time() - start
    
    start = time.time()
    s = 0
    for i, line in enumerate(file('cisla.txt')):
        s += float(line)
    print s/(i + 1)
    print time.time() - start
    
    start = time.time()
    numbers = [float(line) for line in file('cisla.txt')]
    print sum(numbers)/len(numbers)
    print time.time() - start
    
    6.8.2007 11:47 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    Algoritmus vidím jen jeden, zato ve třech implementacích (z toho jedné tak zoufale paměťově neefektivní (aniž by to bylo vyváženo časovou náročností), že by se to dalo používat při výuce jako odstrašující příklad).
    6.8.2007 12:19 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    Pro případ, že by se někdo špatně vyspal, uvádím ještě tohle (bez ošetřování chyb):
    #include<stdio.h>
    
    int main(void){
        FILE* fr;
        double f, s = 0, lines = 0;
    
        fr = fopen("cisla.txt", "r");
        while (fscanf(fr, "%lf\n", &f) != EOF){
            s += f;
            lines += 1;
        }
        printf("%12.12f\n", s/lines);
        fclose(fr);
        return 0;
    }
    
    Je to cca 3-4 krát rychlejší než v pythonu.
    6.8.2007 12:23 Mountains
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    Dakujem za Vasu ochotu a pomoc
    6.8.2007 12:44 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    No, kedze su prazdniny, tak to domaca asi nebude, hoci to inak vykazuje vsetky jej znaky.

    Najvacsi problem je dostat hodnotu z podshellu von a trik je spocitat priemer na desatinne miesta, hoci to bash nevie.
    #!/bin/bash
    set -- `while read n; do
      sucet=$((sucet + n))
      lines=$((lines + 1))
      echo $sucet $lines
    done <subor.in | tail -n -1`
    
    sucet=$1
    lines=$2
    
    echo $((sucet / lines))
    # # ak to chces na 2 destinne miesta:
    # avgfrac=$((sucet * 100 / lines))
    # echo ${avgfrac%??}.${avgfrac: -2}
    
    
    If you hold a Unix shell up to your ear, you can you hear the C.
    6.8.2007 12:47 lada
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    pokud to ma byt ciste v shellu tak asi takto: #!/bin/sh

    text=`cat soubor_dat |tr '\n' '+'`0
    pocet=`cat soubor_dat |wc -l`
    prumer=`echo "($text)/$pocet"|bc -l`
    echo $prumer
    6.8.2007 13:24 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    Tak tomu říkám řešení čistě v shellu… :-)
    6.8.2007 13:49 Zdenek
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    Zatim je to ovsem nejbliz k zadani. A nepochybne to spravne *nix reseni :-)
    6.8.2007 14:35 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    Potrebuje to tr a bc. Riesenie CISTO v bashi mam zatial iba ja :-)
    If you hold a Unix shell up to your ear, you can you hear the C.
    6.8.2007 14:50 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    Dá se to napsat třeba i takhle:
    #!/bin/awk -f
    BEGIN{lines=0;s=0;}
    {lines++;s+=$1;}
    END{print "prumer je", s/lines;}
    
    no a awk už tak skoro "v shellu" je, že? Nebo teda v posixu. Teda *nixu. Teda ... no prostě je to víc v shellu než třeba bc. A určitě je to mnohem blíž shellu než python. Ale asi je to trochu dál shellu než třeba "tail". To jsou problémy ...
    6.8.2007 15:24 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    Já si hlavně myslím, že zadání typu "udělejte XY v ZW" jsou dobrá akorát tak pro školní úlohy. V praxi je daleko užitečnější umět zvolit vhodný nástroj pro danou úlohu (zde podle okolností např. awk, bc, perl, python nebo C), než se snažit ji za každou cenu udolat nevhodně zvoleným nástrojem.
    6.8.2007 14:24 pavel
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    Já řeším podobný problém, ale data mám ve sloupcích s oddělovačem ; Jak sčítat data ve sloupci?
    6.8.2007 14:47 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    awk(1)
    6.8.2007 15:26 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    Takže bude tolik průměrů, kolik je sloupců?
    #!/usr/bin/python
    # -*- coding:utf-8 -*-
    import random, time
    
    radky = 5
    sloupce = 10
    
    fw = file('cisla.txt', 'w')
    for i in range(radky):
        cisla_str = ['%f' %(i*j) for j in range(sloupce)]
        radek = ';'.join(cisla_str)
        fw.write('%s\n' %radek)
    fw.close()
    
    fr = file('cisla.txt')
    sums = [float(x) for x in fr.readline().split(';')]
    for i, line in enumerate(fr):
        for j, val_str in enumerate(line.split(';')):
            sums[j] += float(val_str)
    i += 2
    avgs = [x/i for x in sums]
    print sums
    print avgs
    
    A na začátku se neví, kolik těch sloupců je, že?
    6.8.2007 17:50 pavel
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    Sloupců se ví (je to druhý až patnáctý), ale počet řádků mám pokaždé jiný...
    6.8.2007 17:54 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Bash aritmeticky priemer
    Aha. Ale snad by mělo jít použít to, co jsem napsal, protože to funguje univerzálně pro libovolný (rozumný) počet sloupců i řádků. Samo si to příslušná čísla zjistí.

    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.