ESPHome, tj. open source systém umožňující nastavovat zařízení s čipy ESP (i dalšími) pomocí konfiguračních souborů a připojit je do domácí automatizace, například do Home Assistantu, byl vydán ve verzi 2024.4.0.
LF AI & Data Foundation patřící pod Linux Foundation spustila Open Platform for Enterprise AI (OPEA).
Neziskové průmyslové konsorcium Khronos Group vydalo verzi 1.1 specifikace OpenXR (Wikipedie), tj. standardu specifikujícího přístup k platformám a zařízením pro XR, tj. platformám a zařízením pro AR (rozšířenou realitu) a VR (virtuální realitu). Do základu se z rozšíření dostalo XR_EXT_local_floor. Společnost Collabora implementuje novou verzi specifikace do platformy Monado, tj. open source implementace OpenXR.
Byla vydána nová verze 0.38.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 4.4 nebo novější a také libplacebo 6.338.2 nebo novější.
ClamAV (Wikipedie), tj. multiplatformní antivirový engine s otevřeným zdrojovým kódem pro detekci trojských koní, virů, malwaru a dalších škodlivých hrozeb, byl vydán ve verzích 1.3.1, 1.2.3 a 1.0.6. Ve verzi 1.3.1 je mimo jiné řešena bezpečnostní chyba CVE-2024-20380.
Digitální a informační agentura (DIA) oznámila (PDF, X a Facebook), že mobilní aplikace Portál občana je ode dneška oficiálně venku.
#HACKUJBRNO 2024, byly zveřejněny výsledky a výstupy hackathonu města Brna nad otevřenými městskými daty, který se konal 13. a 14. dubna 2024.
Společnost Volla Systeme stojící za telefony Volla spustila na Kickstarteru kampaň na podporu tabletu Volla Tablet s Volla OS nebo Ubuntu Touch.
Společnost Boston Dynamics oznámila, že humanoidní hydraulický robot HD Atlas šel do důchodu (YouTube). Nastupuje nová vylepšená elektrická varianta (YouTube).
Desktopové prostředí LXQt (Lightweight Qt Desktop Environment, Wikipedie) vzniklé sloučením projektů Razor-qt a LXDE bylo vydáno ve verzi 2.0.0. Přehled novinek v poznámkách k vydání.
Řešení dotazu:
IF „hlad“ GOTO „lednice“
if
není funkce. A když už bys to rád dělal nějak divně složitě, proč to neuděláš pomocí operátorů & | ^
?
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...
double mocnina(double x,int y) { return x*(y>1?mocnina(x,--y):1); }
if
. Cílem bylo mít tam nějaké if
y ;)
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í.
Je tam chyba.
Má tam byť:
else
return x;
if (y>0)
Jirka
if
y ;)
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 }; };
error: template instantiation depth exceeds maximum of 900
jsem zkoušel vytvořitAno? A ako ďaleko si sa dostal?
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);
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
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
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
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 retq0x2540be400 = 10^10
Tiskni Sdílej: