Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define N 300
- //prototipo della funzione
- int main() {
- int n = 300, random, k; //k è il maggiorante
- int v[N]; //vettore con maggiorante casuale
- int d[N]; //vettore che indica le posizioni del maggiorante, 0 se non è contenuto in d[i] e 1 se è contenuto
- for(int i = 0; i < 100000; i++) //genera 100000 vettori
- {
- for(int t = 0; t < n; t++) //azzera il vettore delle posizioni
- d[t] = 0;
- k = rand() % N; //genero casualmente un nuovo maggiorante
- if(i % 2 == 0) //una volta su due
- {
- for(int j = 0; j < n / 2 + 1; j++) //creami un vettore con un maggiorante
- {
- do {
- random = rand() % n;
- } while(d[random] != 0);
- d[random] = 1;
- v[random] = k;
- }
- for(int j = 0; j < n; j++)
- if(d[j] == 0)
- v[j] = rand() % n;
- }
- else //altrimenti creami un vettore probabilmente senza maggiorante
- {
- for(int j = 0; j < n; j++)
- v[j] = rand() % n;
- k = -1;
- }
- if(k != majority(v, n))
- printf("%d\n", i); //se il maggiorante trovato non è quello che è stato inserito nel vettore, stampa a video
- //for(int j = 0; j < n; j++)
- // printf("%d ", v[j]);
- //printf("\n");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement