Odpověď Evropské komise (pdf) k evropské občanské iniciativě Stop Destroying Videogames, jež je součástí hnutí Stop Killing Games: "Komise se domnívá, že v této fázi nemůže navrhnout právní povinnost zachovat hratelnost videoher poté, co přestaly být poskytovány komerčně. Důvodem jsou i stávající práva duševního vlastnictví. Podle autorského práva EU mají nositelé práv výlučná práva ke svým výtvorům. Kromě autorských práv mohou být
… více »Byl vydán Mozilla Firefox 152.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 152 bude brzy k dispozici také na Flathubu a Snapcraftu.
Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.7 (Mastodon). Přehled novinek i s videi a se snímky obrazovek v oficiálním oznámení. Podrobný přehled v seznamu změn.
Hříčka xsnow, která na ploše spustí sněžení, je protestware. Pokud jste v Rusku (LANG=ru), zobrazuje ukrajinské vlajky.
UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala beta verzi Ubuntu Touch 24.04-2.0. Nová verze již počítá s výřezy pro fotoaparát (notch) a zaoblenými rohy displeje. Webový prohlížeče Morph přešel z Chromia 87 na Chromium 134. Do shellu Lomiri byl přidán editor snímků obrazovky.
V Praze probíhá Flock 2026, tj. konference pro přispěvatele a příznivce Fedory. Přednášky lze sledovat také na YouTube.
Node-RED (Wikipedie, GitHub), webová aplikace postavená na Node.js pro vizuální programování a propojování hardwarových zařízení, API a online služeb, byl vydán ve verzi 5.0. Přehled novinek v příspěvku na blogu.
Byla vydána nová verze 3.27.0 FreeRDP, tj. svobodné implementace protokolu RDP (Remote Desktop Protocol). Opraveno bylo 5 zranitelností.
Řídící výbor GCC schválil záměr do GCC začlenit backend WebAssembly.
Po 9 týdnech vývoje od vydání Linuxu 7.0 oznámil Linus Torvalds vydání Linuxu 7.1. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna a časem také na Linux Kernel Newbies.
Ř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: