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 09:55 | Nová verze

Byl vydán Debian 8.11, tj. jedenáctá a současně poslední opravná verze Debianu 8 s kódovým názvem Jessie. Uživatelům je doporučen přechod na Debian 9 Stretch nebo využít LTS (Debian Long Term Support). LTS podpora Debianu 8 je plánována do 30. června 2020. LTS podpora Debianu 7 Wheezy skončila 31. května 2018.

Ladislav Hagara | Komentářů: 0
včera 09:11 | IT novinky

Hodnota Bitcoinu, decentralizované kryptoměny, klesla pod 6 000 dolarů. Před půl rokem byla hodnota Bitcoinu téměř 20 000 dolarů.

Ladislav Hagara | Komentářů: 24
23.6. 12:33 | Zajímavý projekt

Kernel.org představil lore.kernel.org, tj. archiv diskusního listu vývojářů linuxového jádra LKML (Linux Kernel Mailing List) s řadou zajímavých funkcí. Archiv běží na softwaru Public Inbox.

Ladislav Hagara | Komentářů: 0
23.6. 10:55 | Nová verze

Po devíti měsících vývoje od vydání verze 10.0 byla vydána verze 11.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 (Wikipedie). Představení nových vlastností v příspěvku na blogu a na YouTube.

Ladislav Hagara | Komentářů: 2
22.6. 20:44 | Nová verze

Po více než 3 měsících vývoje od vydání verze 238 oznámil Lennart Poettering vydání verze 239 správce systému a služeb systemd (GitHub, NEWS).

Ladislav Hagara | Komentářů: 43
22.6. 15:00 | Nová verze

Bylo oznámeno vydání nové stabilní verze 1.28 a beta verze 1.29 open source textového editoru Atom (Wikipedie). Přehled novinek i s náhledy v příspěvku na blogu. Podrobnosti v poznámkách k vydání. Atom 1.28 je postaven na Electronu 2.0.

Ladislav Hagara | Komentářů: 2
22.6. 14:00 | Nová verze

Byla vydána nová verze 2.3.0 multiplatformního svobodného frameworku pro zpracování obrazu G'MIC (GREYC's Magic for Image Computing, Wikipedie). Přehled novinek i s náhledy na PIXLS.US.

Ladislav Hagara | Komentářů: 0
22.6. 13:00 | Komunita

Akční RPG hra Shadowrun Returns Deluxe, kterou lze hrát i na Linuxu je nyní zdarma na Humble Bundle. Hra vyšla díky kampani na Kickstarteru v roce 2013.

tajny_007 | Komentářů: 0
22.6. 01:00 | Nová verze

Byla vydána verze 1.27 programovacího jazyka Rust (Wikipedie). Z novinek je nutno zmínit podporu SIMD (Single Instruction Multiple Data). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

Ladislav Hagara | Komentářů: 7
21.6. 16:22 | IT novinky

CEO Intelu Brian Krzanich rezignoval (tisková zpráva). Oficiálním důvodem je "vztah na pracovišti". S okamžitou platností se dočasným CEO stal Robert Swan.

Ladislav Hagara | Komentářů: 41
Jak čtete delší texty z webových stránek?
 (78%)
 (21%)
 (4%)
 (7%)
 (2%)
 (11%)
Celkem 256 hlasů
 Komentářů: 39, poslední 21.6. 17:44
    Rozcestník

    Dotaz: c++ mocnina na n

    22.11.2012 17:28 marek33
    c++ mocnina na n
    Přečteno: 5344×
    Ahoj mám takový dotaz, v c++ jsem zkoušel vytvořit mocninu na n-tou, nevíte někdo jak na to ??

    Řešení dotazu:


    Odpovědi

    22.11.2012 17:34 chrono
    Rozbalit Rozbalit vše Re: c++ mocnina na n
    V <cmath> je funkcia std::pow
    22.11.2012 17:52 marek33
    Rozbalit Rozbalit vše Re: c++ mocnina na n
    myslel jsem pomocí funkce if
    22.11.2012 18:12 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: c++ mocnina na n
    Vyšel bych z: IF „hlad“ GOTO „lednice“
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    22.11.2012 18:14 Jary | skóre: 30 | blog: Jary má blog | Dům
    Rozbalit Rozbalit vše Re: c++ mocnina na n
    if není funkce. A když už bys to rád dělal nějak divně složitě, proč to neuděláš pomocí operátorů & | ^?
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky. GitHub
    22.11.2012 18:16 chrono
    Rozbalit Rozbalit vše Re: c++ mocnina na n
    Dalo by sa použiť aj if, ale rozumnejšie by mohlo byť for (a if pre n=0 alebo 1)
    22.11.2012 18:29 l4m4
    Rozbalit Rozbalit vše Re: c++ mocnina na n
    Chceš kód obsaující if? Chceš efektivní algoritmus pro celočíselné mocniny? Všechno lze zařídit!
    double mocnina(double x, int i)
    {
        double r = 1.0;
        if (!i)
            return 1.0;
        bool negative = false;
        if (i < 0) {
            negative = true;
            i = -i;
        }
        for ( ; ; ) {
            if (i & 1)
                r *= x;
            if (!(i >>= 1))
                break;
            x *= x;
        }
        return negative ? 1.0/r : r;
    }
    
    Jen nevím, jak budeš vysvětlovat, jak to funguje...
    22.11.2012 19:30 Radovan
    Rozbalit Rozbalit vše Re: c++ mocnina na n
    Pěkné, ale říká se "co je malé, to je hezké" :-D
    double mocnina(double x,int y)
           {
           return x*(y>1?mocnina(x,--y):1);
           }
    22.11.2012 19:43 l4m4
    Rozbalit Rozbalit vše Re: c++ mocnina na n
    Tam ovšem není žádný if. Cílem bylo mít tam nějaké ify ;)
    22.11.2012 20:02 Radovan
    Rozbalit Rozbalit vše Re: c++ mocnina na n
    If tam je, jenomže maskovaný ;-)
    double mocnina(double x,int y)
           {
           if (y>1)
              return x*mocnina(x,--y);
           else
              return 1;
           }
    Ale jinak je to blbost dobrá akorát na hraní.
    22.2.2013 12:32 libco
    Rozbalit Rozbalit vše Re: c++ mocnina na n

    Je tam chyba.

    Má tam byť:

    else

    return x;

    22.2.2013 13:23 Vtipnéř | skóre: 33 | blog: Vtipnéřův blog | Brno
    Rozbalit Rozbalit vše Re: c++ mocnina na n
    Spíš

    if (y>0)

    Jirka
    Opening Windows is better than washing them. Clearing Windows (e.g. erasing or deleting) is much more better.
    22.11.2012 19:45 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: c++ mocnina na n
    "Hezké" možná, ale máte podstatně horší časovou složitost vůči exponentu a ještě budete muset spoléhat na inteligenci překladače, abyste se nedostal do problémů s přetečením zásobníku.
    22.11.2012 19:47 l4m4
    Rozbalit Rozbalit vše Re: c++ mocnina na n
    Jo, a samozřejmě tohle počítá mocnina(x, 1000000) pomocí 999999 násobení, kdežto mnou uvedený kód pomocí 27 násobení ;)
    23.11.2012 00:50 lertimir | skóre: 61 | blog: Par_slov
    Rozbalit Rozbalit vše Re: c++ mocnina na n
    Takhle to dopadne, když programátor kašle na výpočetní složitost algoritmů.
    23.11.2012 09:36 l4m4
    Rozbalit Rozbalit vše Re: c++ mocnina na n
    Popravdě řečeno, takle by ten algoritmus byl vhodný pro GMP (kde samozřejmě mocnina nějak podobně implementována je), protože tam je cena nějakých bitových operací a dokonce i podmínek zanedbatelná vůči ceně násobení dvou čísel, a především pro jiné typy než double, které zvládne __builtin_powi()...

    Jelikož jsou nejčastěji zapotřebí nízké mocniny, bylo by vhodné pro ně konkrétní výpočty zadrátovat -- a navíc to celé hodit do makra s __builtin_constant_p(), aby se to pro nízké předem známé mocniny optimálně inlinovalo.

    A když se bavíme o C++, tak lze ostatně téhož dosáhnout šablonou, kde je ta mocnina coby parametr, a specializací pro nízké mocniny. Akorát nevím, zda by tam pak byly nějaké ify ;)
    22.11.2012 19:36 Sten
    Rozbalit Rozbalit vše Re: c++ mocnina na n
    Když jde o C++, použil bych šablony, ať to počítá rovnou překladač :-)
    template <int base,
              int pow>
    struct mocnina
    {
        enum {
            value = base * mocnina<base, pow - 1>::value
        };
    };
    
    template <int base>
    struct mocnina<base, 0>
    {
        enum {
            value = 1
        };
    };
    
    23.11.2012 09:39 l4m4
    Rozbalit Rozbalit vše Re: c++ mocnina na n
    error: template instantiation depth exceeds maximum of 900
    18.2.2013 17:16 Ivan
    Rozbalit Rozbalit vše Re: c++ mocnina na n
    Na MSVC je max hloubka rekurze sablon 2500. Na g++ je konfigurovatelna (je na to nejaky parameter).

    22.2.2013 23:18 potato
    Rozbalit Rozbalit vše Re: c++ mocnina na n
    Na druhé straně potřebuje-li kód úroveň vnoření šablon větší než 900, někde je cosi podezřelého...
    22.11.2012 21:22 rastos | skóre: 61 | blog: rastos
    Rozbalit Rozbalit vše Re: c++ mocnina na n
    jsem zkoušel vytvořit
    Ano? A ako ďaleko si sa dostal?
    pavlix avatar 22.11.2012 23:29 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: c++ mocnina na n
    A já myslel, že domácí úkoly se řeší samostatně.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    Řešení 3× (Xóža Hňabaj, Voty, Ash)
    23.11.2012 10:33 pesspi | skóre: 7 | blog: hateblog
    Rozbalit Rozbalit vše Re: c++ mocnina na n
    int mocnina(int x,y) {
      if (y == 2) return x*x;
      if (y == 3) return x*x*x;
      if (y == 4) return x*x*x*x;
      if (y == 5) return x*x*x*x*x;
      if (y == 6) return x*x*x*x*x*x;
      if (y == 7) return x*x*x*x*x*x*x;
      if (y == 8) return x*x*x*x*x*x*x*x;
      if (y == 9) return x*x*x*x*x*x*x*x*x;
      if (y == 10) return x*x*x*x*x*x*x*x*x*x;
      if (y == 11) return x*x*x*x*x*x*x*x*x*x*x;
      if (y == 12) return x*x*x*x*x*x*x*x*x*x*x*x;
      if (y == 13) return x*x*x*x*x*x*x*x*x*x*x*x*x;
      if (y == 14) return x*x*x*x*x*x*x*x*x*x*x*x*x*x;
      if (y == 15) return x*x*x*x*x*x*x*x*x*x*x*x*x*x*x;
      if (y == 16) return x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x;
      if (y == 17) return x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x;
      if (y == 18) return x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x;
      if (y == 19) return x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x;
      return x;
    }
    Je to najlepsia verzia lebo obsahuje najviac ifov. Pre profesionalnu verziu si na zaciatok mozes doplnit assert(y<20);
    23.11.2012 11:12 chrono
    Rozbalit Rozbalit vše Re: c++ mocnina na n
    Prípadne sa tam môže pridať ešte jedno if a rekurzia. :)
    18.2.2013 17:10 Pavel Kocman
    Rozbalit Rozbalit vše Re: c++ mocnina na n
    Dělávali jsme to pomocí for ciklu, tím mohla být mocnina doopravdy libovolná, ale už si nevzpomínám. Taky to potřebuju.
    22.2.2013 12:07 libco
    Rozbalit Rozbalit vše Re: c++ mocnina na n

    double mocnina_x(double cislo, int umocni_na)

    {

         int i, vysledok = 1;

         for (i = 1; i <= umocni_na; i++)

         vysledok *= cislo;

         return vysledok;

    }

    22.2.2013 17:36 Bill Gates
    Rozbalit Rozbalit vše Re: c++ mocnina na n
    Mozna by se to dalo jeste zoptimalizovat z pohledu delky kodu programu ... Treba na arduinu, kde obcas setrime kazdy bajt by byla lepsi verze ponekud modifikovana (viz nize), dle testovaci kompilace to vychazi pro arduino Mega o 228 bytu lip :) a 228 bajtu na arduinu = misto na plno dalsich funkci. Tedy za predpokladu ze potrebujeme nezbytne nutne pouzit ify :D

    void setup() {
    int x=10;
    int y=10;
    int q=mocnina(x,y);
    Serial.println(q);
    }
    
    int mocnina(int x,int y) {
      if (y == 2) return x*x;
      if (y == 3) return x*x*x;
      if (y == 4) return x*x*x*x;
      if (y == 5) return x*x*x*x*x;
      if (y == 6) return x*x*x*x*x*x;
      if (y == 7) return x*x*x*x*x*x*x;
      if (y == 8) return x*x*x*x*x*x*x*x;
      if (y == 9) return x*x*x*x*x*x*x*x*x;
      if (y == 10) return x*x*x*x*x*x*x*x*x*x;
      if (y == 11) return x*x*x*x*x*x*x*x*x*x*x;
      if (y == 12) return x*x*x*x*x*x*x*x*x*x*x*x;
      if (y == 13) return x*x*x*x*x*x*x*x*x*x*x*x*x;
      if (y == 14) return x*x*x*x*x*x*x*x*x*x*x*x*x*x;
      if (y == 15) return x*x*x*x*x*x*x*x*x*x*x*x*x*x*x;
      if (y == 16) return x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x;
      if (y == 17) return x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x;
      if (y == 18) return x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x;
      if (y == 19) return x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x;
      return x;
    }
    
    void loop() { }
    

    Binary sketch size: 4,084 bytes

    void setup() {
    int x=10;
    int y=10;
    int q=mocnina(x,y);
    Serial.println(q);
    }
    
    int mocnina(int c,int y) {
      int x=c;
      if (y >= 2) x*=c;
      if (y >= 3) x*=c;
      if (y >= 4) x*=c;
      if (y >= 5) x*=c;
      if (y >= 6) x*=c;
      if (y >= 7) x*=c;
      if (y >= 8) x*=c;
      if (y >= 9) x*=c;
      if (y >= 10) x*=c;
      if (y >= 11) x*=c;
      if (y >= 12) x*=c;
      if (y >= 13) x*=c;
      if (y >= 14) x*=c;
      if (y >= 15) x*=c;
      if (y >= 16) x*=c;
      if (y >= 17) x*=c;
      if (y >= 18) x*=c;
      if (y >= 19) x*=c;
      return x;
    }
    
    void loop() { }
    
    
    Binary sketch size: 3,856 bytes

    22.2.2013 17:42 Kit
    Rozbalit Rozbalit vše Re: c++ mocnina na n
    Zkus to ještě porovnat s tím, co napsal libco. 3,856 B mi připadá strašně moc.
    22.2.2013 18:09 Bill Gates
    Rozbalit Rozbalit vše Re: c++ mocnina na n
    void setup() {
    int x=10;
    int y=10;
    int q=mocnina(x,y);
    Serial.println(q);
    }
    
    
    double mocnina(double cislo, int umocni_na)
    {
    int i, vysledok = 1;
    for (i = 1; i <= umocni_na; i++)
    vysledok *= cislo;
    return vysledok;
    }
    
    void loop() { }
    
    Binary sketch size: 4,068 bytes

    void setup() {
    int x=10;
    int y=10;
    int q=mocnina(x,y);
    Serial.println(q);
    }
    
    
    int mocnina(int cislo, int umocni_na)
    {
    int i, vysledok = 1;
    for (i = 1; i <= umocni_na; i++)
    vysledok *= cislo;
    return vysledok;
    }
    
    void loop() { }
    
    Binary sketch size: 3,454 bytes
    22.2.2013 18:21 Bill Gates
    Rozbalit Rozbalit vše Re: c++ mocnina na n
    void setup() {
    int x=10;
    int y=10;
    int q=mocnina(x,y);
    Serial.println(q);
    }
    
    
    double mocnina(double x,int y) {
    return x*(y>1?mocnina(x,--y):1);
    }
           
    void loop() { }
    
    Binary sketch size: 3,950 bytes

    void setup() {
    int x=10;
    int y=10;
    int q=mocnina(x,y);
    Serial.println(q);
    }
    
    
    int mocnina(int x,int y) {
    return x*(y>1?mocnina(x,--y):1);
    }
           
    void loop() { }
    Binary sketch size: 3,474 bytes
    22.2.2013 18:57 Ivan
    Rozbalit Rozbalit vše Re: c++ mocnina na n
    A to co stenovo reseni? Vysledek vypocita kompilator behem kompilace a do zdrojaku dosadi primo konstantu:
    0000000000400578 <main>:
      400578:       48 83 ec 08             sub    $0x8,%rsp
      40057c:       48 be 00 e4 0b 54 02    mov    $0x2540be400,%rsi
      400583:       00 00 00
      400586:       bf 98 06 40 00          mov    $0x400698,%edi
      40058b:       31 c0                   xor    %eax,%eax
      40058d:       e8 d6 fe ff ff          callq  400468 <printf@plt>
      400592:       5a                      pop    %rdx
      400593:       31 c0                   xor    %eax,%eax
      400595:       c3                      retq
    
    0x2540be400 = 10^10

    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.