O víkendu probíhá v Bruselu konference FOSDEM 2026 (Free and Open source Software Developers’ European Meeting). Program konference je velice nabitý: 37 místností, 71 tracků, 1184 přednášejících, 1069 přednášek, prezentací a workshopů. Sledovat je lze i online. K dispozici budou jejich videozáznamy. Aktuální dění lze sledovat na sociálních sítích.
Společnost Nex Computer stojící za "notebooky bez procesorů a pamětí" NexDock představila telefon NexPhone, který může funguje jako desktop PC, stačí k němu připojit monitor, klávesnici a myš nebo NexDock. Telefon by měl být k dispozici ve třetím čtvrtletí letošního roku. Jeho cena by měla být 549 dolarů. Předobjednat jej lze s vratní zálohou 199 dolarů. V dual-bootu by měl být předinstalovaný Android s Linuxem (Debian) jako aplikací a Windows 11.
Byla vydána nová major verze 9.0 softwaru pro správu elektronických knih Calibre (Wikipedie). Přehled novinek v poznámkách k vydání. Vypíchnuta je podpora AI.
Wasmer byl vydán ve verzi 7.0. Jedná se o běhové prostředí pro programy ve WebAssembly. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
V reakci na nepopulární plán Microsoftu ještě více ve Windows prohloubit integraci umělé inteligence Copilot, Opera na sociální síti 𝕏 oznámila, že připravuje nativní linuxovou verzi prohlížeče Opera GX. Jedná se o internetový prohlížeč zaměřený pro hráče, přičemž obsahuje všechny základní funkce běžného prohlížeče Opera. Kromě integrace sociálních sítí prohlížeč například disponuje 'omezovačem', který umožňuje uživatelům omezit využití sítě, procesoru a paměti prohlížečem, aby se tak šetřily systémové zdroje pro jinou aktivitu.
NVIDIA vydala nativního klienta své cloudové herní služby GeForce NOW pro Linux. Zatím v beta verzi.
Open Gaming Collective (OGC) si klade za cíl sdružit všechny klíčové projekty v oblasti linuxového hraní počítačových her. Zakládajícími členy jsou Universal Blue a Bazzite, ASUS Linux, ShadowBlip, PikaOS a Fyra Labs. Strategickými partnery a klíčovými přispěvateli ChimeraOS, Nobara, Playtron a další. Cílem je centralizovat úsilí, takže namísto toho, aby každá distribuce udržovala samostatné opravy systému a podporu hardwaru na
… více »V kryptografické knihovně OpenSSL bylo nalezeno 12 zranitelností. Opraveny jsou v upstream verzích OpenSSL 3.6.1, 3.5.5, 3.4.4, 3.3.6 a 3.0.19. Zranitelnosti objevila společnost AISLE pomocí svého autonomního analyzátoru.
Desktopové prostředí Xfce bude mít vlastní kompozitor pro Wayland s názvem xfwl4. V programovacím jazyce Rust s využitím stavebních bloků z projektu Smithay jej napíše Brian Tarricone. Úprava stávajícího xfwm4 tak, aby paralelně podporoval X11 i Wayland, se ukázala jako špatná cesta.
Desktopové prostředí KDE Plasma 6.8 poběží už pouze nad Waylandem. Vývojáři, kteří s rozhodnutím nesouhlasí, vytvořili fork KDE Plasma s názvem SonicDE (Sonic Desktop Environment) s cílem zachovat a vylepšovat podporu X11.
Řešení dotazu:
nakopnuti:
bud nahodny vyber z pole/monziny, kde pocet vyskytu nejakeho prvku je umerny vaze prvku
nebo udelat nejakou prevodni funkci
int prvky[N],vahy[N];
int rnd2index(int rnd) {
int i,tmp = 0;
for(i=0;i<N;i++) if((tmp+=vahy[i])>=rnd) break;
return i;
}
rnd je generovano od 0 do suma(vahy)
vlastne od 1 do suma(vahy)
nebo nahradit >= za > a pak od 0 do suma(vahy)-1
hm je tam chyba ...
oprava:
int prvky[N],vahy[N];
int rnd2index(int rnd) {
int i,tmp = 0;
for(i=0;i<N;i++) {
tmp+=vahy[i];
if(tmp>rnd) break;
}
return i;
}
no myslel jsem to nejak takhle:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int suma(int j, int* p) {
int i=0,tmp=0;
for(;i<j;i++) tmp += *(p+i);
return tmp;
}
int weightedrnd(int j, int* values, int* weights) {
int i=0,tmp=0,sum=suma(j, weights),rnd=rand();
for(;i<j;i++) {
tmp += weights[i];
if(tmp>rnd%sum) break;
}
return *(values+i);
}
int main(int argc, char** argv) {
int i,*v,*w;
if (argc<=2 || !argc%2) return -1;
int n = argc/2-1;
v = (int*) malloc(sizeof(int)*n);
w = (int*) malloc(sizeof(int)*n);
for(i=0;i<n;i++) {
v[i] = atoi(argv[i*2+2]);
w[i] = atoi(argv[i*2+3]);
if (w[i]<=0) {
free(v);
free(w);
return -2;
}
}
/*for(i=0;i<n;i++) printf ("v:%d w:%d\n", v[i], w[i]);*/
srand(time(NULL));
for(i=0;i<atoi(argv[1]);i++) printf ("%d ", weightedrnd(n,v,w));
free(v);
free(w);
return 0;
}
Tiskni
Sdílej: