ОС1/Септембар 1 2025
- Овај рок није решен. Помозите SI Wiki тако што ћете га решити.
Odbrana projekta 2025. godine održana je 08.10.2025.
Potrebno je dinamički alocirati matricu mat celih brojeva (int), dimenzija M*N, gde se M i N učitavaju sa standardnog ulaza i imaju proizvoljan broj cifara. Matricu nakon alociranja popuniti pseudoslučajnim verdnostima. Za generisanje pseudoslučajnih vrednosti koristiti sledeći segment koda:
static unsigned long int next = 1;
int custom_rand(void) {
next = next * 1103515245 + 12345;
return (unsigned int) (next / 65536) % 34768;
}
void custom_srand(unsigned int seed) {
next = seed;
}
Potrebno je napraviti histogram H[10] broja pojavljivanja vrednosti unutar matrice po modulu 10 (mat[i][j]%10) za sve elemente. Pravljenje histograma odratiti kreiranjem M uporednih niti gde svaka nit računa lokalni histogram za jednu vrstu, a nakon toga taj histogram spaja s deljenim histogramom u kojem će se nalazizi finalne vrednosti za celu matricu. Glavna nit treba da ipsiše konačni histogram kada sve niti završe obradu.
20 poena: Tokom izvršavanja niti, nakon svakih 10 obraženih elemenata pozvati dispatch
30 poena: Tokom izvršavanja niti, nakon svakih 10 obraženih elemenata uspavati nit na 5 perioda tajmera