Andrea's profileThe PachonomiconPhotosBlogListsMore ![]() | Help |
|
July 02 Ora so tirarli un po' meglio/* Special thanks to Romaric for suggestions and testing */
#include <stdio.h>
#include <math.h> #include <stdlib.h> #include <time.h> double media(int *sumsum, int repeat);
double devst(int *sumsum, int repeat, double mean); int main() {
int tipo, *sumsum, i, j, N, repeat, mod; double mean, dev_st; time_t t1; time(&t1); srand((long)t1); printf("\n Inserire numero di dadi\n"); scanf("%d", &N); printf(" Inserire numero di facce:\n"); scanf("%d", &tipo); printf(" Inserire modificatore aggiuntivo:\n"); scanf("%d", &mod); printf(" Quante volte devo iterare il processo?\n"); scanf("%d", &repeat); sumsum = calloc(repeat*sizeof(int), sizeof(int)); if (sumsum == NULL) { printf("ERRORE: Non ho abbastanza memoria\n"); exit(1); } int bar; printf(" Ho tirato %d volt%c %dd%d %c %d. Il risultato e' stato ", repeat, (repeat>1)? 'e' : 'a', N, tipo, (mod<0) ? '-' : '+', (unsigned)mod); for(i = 0; i < repeat; i++){ for(j = 0; j < N; j++){ do{bar = (1+(rand() % tipo));} while(bar > tipo); sumsum[i] += bar; } sumsum[i] += mod; if(sumsum[i]<0){sumsum[i] = 1;} printf("%d ", sumsum[i]);} if(repeat>1){ mean = media(sumsum, repeat); dev_st = devst(sumsum, repeat, mean); printf("\n La media e' %f\n La deviazione standard e' %f\n La deviazione standard della media e' %f\n", mean, dev_st, dev_st/sqrt(repeat));} printf(" Premere invio per uscire \n"); char oni; scanf("%c", &oni); scanf("%c", &oni); printf("\n Hai premuto %c. Ciao Ciao!!!", oni); return 0; } double media(int *sumsum, int repeat){ int i, sum = 0; double mean; for (i = 0; i < repeat; i++){ sum += sumsum[i]; } mean = ((double)sum/(double)repeat); if(repeat>1){printf("\n La somma e' %d", sum);} return mean; } double devst(int *sumsum, int repeat, double mean){ int i; double dev, sqsum; for(i = 0; i < repeat; i++){ sqsum += (((double)sumsum[i] - mean) * ((double)sumsum[i] - mean)); } dev = sqrt((double)(sqsum/(repeat-1))); return dev; } Ora so tirare i dadi/* Dedicato a Monia */
#include <stdio.h>
#include <math.h> #include <stdlib.h> #include <time.h> double media(int *risultato, long N);
double devst(int *risultato, long N, double mean); int main() {
int tipo, *risultato, i; long N; double mean, dev_st; time_t t1; time(&t1); srand((long)t1); printf("\n Inserire numero di dadi\n"); scanf("%ld", &N); printf(" Inserire numero di facce:\n"); scanf("%d", &tipo); risultato = malloc(N*sizeof(int)); for(i = 0; i < N; i++){ do{risultato[i] = (1+(rand() % tipo));} while(risultato[i] > tipo || risultato[i] < 1); } printf(" Ho tirato %d dad%c (%dd%d). Il risultato e' stato ", N, (N==1)? 'o' : 'i', N, tipo); for(i = 0; i < N; i++){ printf("%d ", risultato[i]);} if(N>1){ mean = media(risultato, N); dev_st = devst(risultato, N, mean); printf("\n La media e' %f\n La deviazione standard e' %f\n La deviazione standard della media e' %f\n", mean, dev_st, dev_st/sqrt(N));} printf(" Premere invio per uscire \n"); char oni; scanf("%c", &oni); scanf("%c", &oni); printf("\n Hai premuto %c. Ciao Ciao!!!", oni); return 0; } double media(int *risultato, long N){ int i, sum = 0; double mean; for (i = 0; i < N; i++){ sum += risultato[i]; } mean = ((double)sum/(double)N); if(N>1){printf("\n La somma e' %d", sum);} return mean; } double devst(int *risultato, long N, double mean){
int i; double dev, sqsum; for(i = 0; i < N; i++){ sqsum += (((double)risultato[i] - mean) * ((double)risultato[i] - mean)); } dev = sqrt((double)(sqsum/(N-1))); return dev; } /* ... E domani esame di informatica... in becco al gufo a me */ |
|
|