| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:终于过了,发个程序给和我一样郁闷的人参考一下In Reply To:Re:终于过了,发个程序给和我一样郁闷的人参考一下 Posted by:wanglei at 2005-08-30 20:39:48 > #include <stdio.h>
> #include <math.h>
> #include <string.h>
> #define M 1000000
> #define PI 3.141592653589793
> int num[151];
>
> double cal(double p)
> {
> double dx=0.0002,c=1.0/sqrt(2*PI),x0=0,s=0.5,t,m;
> if (p>=0.5){
> while(x0<=5&&s<=p){
> m=x0+dx/2.0;
> t=exp(-(m*m)/2.0)*dx*c;
> s=s+t;
> x0+=dx;
> }
> }
> else{
> while(x0>=-5&&s>=p){
> m=x0-dx/2.0;
> t=exp(-(m*m)/2.0)*dx*c;
> s=s-t;
> x0-=dx;
> }
>
> }
> return x0;
> }
> int main()
> {
> int i,n,m,sc,j,k,first=1,sp;
> double p,sp1,x;
>
> while(scanf("%d",&n)!=EOF&&n){
> if (!first) printf("\n");
> first=0;
> memset(num,0,sizeof(num));
> for(i=0;i<n;i++){scanf("%d",&sc);num[sc]++;}
> scanf("%d",&m);
> for(i=0;i<m;i++){
> scanf("%d",&sc);
> k=0;
> for(j=0;j<sc;j++) k+=num[j];
> p=k/double(n);
> x=cal(p);
> sp1=500.0+100.0*x;
> if (sp1<=100) sp=100;
> else if (sp1>100&&sp1<=501) sp=sp1;
> else if (sp1>501&&sp1<=900){
> if (sp1>int(sp1)) sp=sp1+1;
> else sp=sp1;
> }
> else sp=900;
> printf("%d\n",sp);
> }
> }
> return 0;
> }
>
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator