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 16:44 | IT novinky

    Tvůrcem nejpopulárnější kryptoměny bitcoin, který se skrývá za pseudonymem Satoši Nakamoto (Satoshi Nakamoto), je britský kryptograf Adam Back. Na základě vlastní investigativní práce to tvrdí americký deník The New York Times (NYT). Několik indicií podle autorů jasně ukazuje na to, že Back a Nakamoto jsou stejný člověk. Jde mimo jiné o podobný odborný a osobnostní profil či totožné chyby a manýry v psaném projevu.

    Ladislav Hagara | Komentářů: 0
    dnes 14:44 | Nová verze

    Google Chrome 147 byl prohlášen za stabilní. Nejnovější stabilní verze 147.0.7727.55 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Vylepšeny byly také nástroje pro vývojáře. Přehled novinek v Chrome DevTools 145 až 147 také na YouTube.

    Ladislav Hagara | Komentářů: 0
    dnes 12:44 | Nová verze

    Vývojáři z Laboratoří CZ.NIC vydali nové verze aplikací Datovka (Datovka 4.29.0, Mobilní Datovka 2.6.2). V případě desktopové verze přibyly možnosti projít všechny uložené zprávy, zkontrolovat časy expirací časových razítek a přerazítkovat datové zprávy, které lze v ISDS přerazítkovat. Novinkou je také možnost vytahovat myší ze seznamu ZFO soubory datových zpráv, tento úkon jde udělat i pomocí tlačítek Ctrl+C. Nová verze Mobilní Datovky přináší jen drobné úpravy.

    VSladek | Komentářů: 0
    včera 21:55 | Nová verze

    MicroPython (Wikipedie), tj. implementace Pythonu 3 optimalizovaná pro jednočipové počítače, byl vydán ve verzi 1.28.0. Z novinek lze vypíchnout novou třídu machine.CAN.

    Ladislav Hagara | Komentářů: 0
    včera 10:22 | Komunita

    Michael Meeks, CEO společnosti Collabora, na apríla oznámil, nebyl to ale apríl, že nadace The Document Foundation zastřešující vývoj kancelářského balíku LibreOffice vyloučila ze svých řad všechny zaměstnance a partnery společnosti Collabora, tj. více než třicet lidí, kteří po mnoho let přispívali do LibreOffice. Nadace The Document Foundation po několika dnech publikovala oficiální vyjádření. Přiznává pochybení při zakládání

    … více »
    Ladislav Hagara | Komentářů: 9
    6.4. 05:33 | Pozvánky

    Protože je už po aprílu, můžou strahováci opět zveřejnit program další Virtuální Bastlírny, aniž by připravená témata působila dojmem, že jde o žert. Vězte tedy, že v úterý 14. dubna (změna!!!) od 20:00 proběhne VB, kde se setkají bastlíři, technici, učitelé i nadšenci do techniky a kde i vy se můžete zapojit do družného hovoru, jako by všichni seděli u pomyslného piva. Co mají bastlíři tento měsíc na srdci? Pravděpodobně by nás musel zasáhnout

    … více »
    bkralik | Komentářů: 3
    5.4. 23:33 | Nová verze

    Byla vydána verze 26.1 aneb čtvrtletní aktualizace open source počítačového planetária Stellarium (Wikipedie, GitHub). Vyzkoušet lze webovou verzi Stellaria na Stellarium Web.

    Ladislav Hagara | Komentářů: 1
    5.4. 23:00 | Zajímavý projekt

    VOID (Video Object and Interaction Deletion) je nový open-source VLM model pro editaci videa, který dokáže z videí odstraňovat objekty včetně všech jejich fyzikálních interakcí v rámci scény (pády, kolize, stíny...) pomocí quadmaskingu (čtyřhodnotová maska, která člení pixely scény do čtyř kategorií: objekt určený k odstranění, překrývající se oblasti, objektem ovlivněné oblasti a pozadí scény) a dvoufázového inpaintingu. Za projektem stojí výzkumníci ze společnosti Netflix.

    NUKE GAZA! 🎆 | Komentářů: 8
    5.4. 05:22 | Zajímavý software

    Design (GitHub) je 2D CAD pro GNOME. Instalovat lze i z Flathubu. Běží také ve webovém prohlížeči.

    Ladislav Hagara | Komentářů: 20
    5.4. 04:11 | Zajímavý software

    Příspěvek na blogu herního enginu Godot představuje aplikaci Xogot přinášející Godot na iPad a iPhone. Instalovat lze z App Storu. Za Xogotem stojí Miguel de Icaza (GitHub) a společnost Xibbon.

    Ladislav Hagara | Komentářů: 3
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (7%)
     (1%)
     (12%)
     (30%)
     (3%)
     (6%)
     (1%)
     (14%)
     (24%)
    Celkem 1242 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Dotaz: c++ mocnina na n

    22.11.2012 17:28 marek33
    c++ mocnina na n
    Přečteno: 8172×
    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: 39 | 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 even much 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: 64 | 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: 63 | 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.