fork(1) 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. printf("%g\n",pr);
  33. fflush(stdout);
  34. while(u>=f){
  35. pr=(c*(n-i)/(i+1))*pr;
  36. f=f+pr;
  37. i=i+1;
  38. }
  39. x=i;
  40. fprintf(fp,"%d\n",x);
  41. }
  42. fclose(fp);
  43. }
  44.  
Time limit exceeded #stdin #stdout 5s 2056KB
stdin
1000 0.95
stdout
試行回数を入力してください: 成功確率を入力してください: 0