fork(3) download
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<math.h>
  4.  
  5. #define lambda 1.0
  6.  
  7. main(){
  8. FILE *fp;
  9. double u,p,f,c,pr;
  10. int n,i,j,x,z;
  11.  
  12. fp = stdout; /*fopen("niko.csv","wt");*/
  13.  
  14. if(fp==NULL){
  15. fprintf(stderr,"cannot open file !\n");
  16. exit(1);
  17. }
  18. printf("試行回数を入力してください: ");
  19. scanf("%d", &n);
  20. printf("成功確率を入力してください: ");
  21. scanf("%lf", &p);
  22.  
  23. for(j=0;j<n;j++){
  24. u=(double)rand()/(RAND_MAX+1.0);
  25. c = p/(1-p);
  26. i=0;
  27. pr=(1-p);
  28. for(z=1;z<n;z++){
  29. pr = pr*(1-p);
  30. }
  31. f=pr;
  32. while(u>=f){
  33. pr=(c*(n-i)/(i+1))*pr;
  34. f=f+pr;
  35. i=i+1;
  36. }
  37. x=i;
  38. fprintf(fp,"%d\n",x);
  39. }
  40. fclose(fp);
  41. }
  42.  
Success #stdin #stdout 0s 2052KB
stdin
10 0.01
stdout
試行回数を入力してください: 成功確率を入力してください: 0
0
0
0
1
0
0
0
0
0