Byl odhalen supply chain attack na Notepad++: útočníci kompromitovali hosting Notepad++ a vybrané dotazy na aktualizace přesměrovávali na servery pod jejich kontrolou. Doporučuje se stáhnout instalátor a přeinstalovat.
Francouzská veřejná správa má v rámci vládní iniciativy LaSuite Numérique ('Digitální sada') v plánu od roku 2027 přestat používat Microsoft Teams a Zoom a přejít na videokonferenční platformu Visio, hostovanou na vlastním hardwaru. Konkrétně se jedná o instance iniciativou vyvíjeného open-source nástroje LaSuite Meet, jehož centrální komponentou je LiveKit. Visio nebude dostupné pro veřejnost, nicméně LaSuite Meet je k dispozici pod licencí MIT.
Eben Upton oznámil další zdražení počítačů Raspberry Pi: 2GB verze o 10 dolarů, 4GB verze o 15 dolarů, 8GB verze o 30 dolarů a 16GB verze o 60 dolarů. Kvůli růstu cen pamětí. Po dvou měsících od předchozího zdražení.
Shellbeats je terminálový hudební přehrávač pro Linux a macOS, který umožňuje vyhledávat a streamovat hudbu z YouTube, stahovat odtud skladby a spravovat lokální playlisty. Pro stahování dat z YouTube využívá yt-dlp, pro práci s audiostreamy mpv. Je napsán v jazyce C a distribuován pod licencí GPL-3.0, rezpozitář projektu je na GitHubu.
Byla vydána nová verze 26.1.30 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. S podporou hardwarového dekódování videa. Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
LibrePCB, tj. svobodný multiplatformní softwarový nástroj pro návrh desek plošných spojů (PCB), byl po deseti měsících od vydání verze 1.3 vydán ve verzi 2.0.0. Přehled novinek v příspěvku na blogu a v aktualizované dokumentaci. Zdrojové kódy LibrePCB jsou k dispozici na GitHubu pod licencí GPLv3.
Guido van Rossum, tvůrce programovacího jazyka Python, oslavil 70. narozeniny. Narodil se 31. ledna 1956 v nizozemském Haarlemu.
OpenClaw je open-source AI asistent pro vykonávaní různých úkolů, ovládaný uživatelem prostřednictvím běžných chatovacích aplikací jako jsou například WhatsApp, Telegram nebo Discord. Asistent podporuje jak různé cloudové modely, tak i lokální, nicméně doporučován je pouze proprietární model Claude Opus 4.5 od firmy Anthropic v placené variantě. GitHubová stránka projektu OpenClaw.
Projekt VideoLAN a multimediální přehrávač VLC (Wikipedie) dnes slaví 25 let. Vlastní, tenkrát ještě studentský projekt, začal již v roce 1996 na vysoké škole École Centrale Paris. V první únorový den roku 2001 ale škola oficiálně povolila přelicencování zdrojových kódů na GPL a tím pádem umožnila používání VLC mimo akademickou půdu.
Moltbook je sociální síť podobná Redditu, ovšem pouze pro agenty umělé inteligence - lidé se mohou účastnit pouze jako pozorovatelé. Agenti tam například rozebírají podivné chování lidí, hledají chyby své vlastní sociální sítě, případně spolu filozofují o existenciálních otázkách 🤖.
Ř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: