Aurox_

istogramma rand

Oct 27th, 2023 (edited)
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.45 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. #include <limits.h>
  5.  
  6. #define TOPRAN 100000000
  7. #define MAXLEN 1000
  8. #define STRLEN 64
  9. #define ITR 1000000
  10.  
  11. void main(void)
  12. {
  13.   int i,j,len,freq[MAXLEN],bin[MAXLEN],check=1,dx,x;
  14.   char input[STRLEN];
  15.  
  16.   printf("Quanti bin vuoi che usi? ");
  17.   do
  18.     {
  19.       printf("Inserisci un numero minore di %d e maggiore di 0.\n",MAXLEN);
  20.       scanf("%s",input);
  21.       len=atoi(input);
  22.       if((len>MAXLEN)||(len<=0))
  23.         {
  24.           printf("Input non valido. ");
  25.         }
  26.       else
  27.         check=0;
  28.     }
  29.   while(check==1);
  30.  
  31.   dx=TOPRAN/len;
  32.  
  33.   for(i=0;i<len;i++)
  34.       freq[i]=0;
  35.      
  36.   printf("Ecco i bin:\n");
  37.   for(i=1,bin[0]=0;i<len;i++)
  38.     {
  39.       bin[i]=bin[i-1]+dx;
  40.       printf("%d\n",bin[i]);
  41.     }
  42.  
  43.   printf("Ecco le frequenze assolute:\n");
  44.  
  45.   for(i=0;i<ITR;i++)
  46.     {
  47.       printf("iterazione: %d/%d\n",i,ITR);
  48.      
  49.       do
  50.         {
  51.           x=rand();
  52.           //printf("Numero random:%d\n",x);
  53.         }
  54.       while(x>TOPRAN);
  55.      
  56.       j=0;
  57.       do
  58.         {
  59.           if(x>bin[j])
  60.             {
  61.               j++;
  62.               //printf("vado avanti\n");
  63.             }
  64.           else
  65.             {
  66.               freq[j-1]++;
  67.               j=len;
  68.               //printf("beccato\n");
  69.             }
  70.         }
  71.       while(j<len);
  72.     }
  73.    
  74.    
  75.   for(i=0;i<len;i++)
  76.     {
  77.       printf("%d) %d\n",i+1,freq[i]);
  78.     }
  79. }
Advertisement
Add Comment
Please, Sign In to add comment