class game{
public static void main(String args[]){
double c1,c2,r1,k1;
double startc1,startc2,startc3,ch;
double a,beta;
double[] tk=new double[101];
int t,s;
int pp;
for (t=1;t<101;t++){
tk[t]=0.2;
}
a=0.33;
beta=0.95;
startc1=0.01;
startc2=5;
ch=checkc(tk,startc1);
System.out.println(ch);
ch=checkc(tk,startc2);
System.out.println(ch);
s=0;
while(s<20){
startc3=(startc1+startc2)/2;
ch=checkc(tk,startc3);
if (ch<50)startc1=startc3;
if (ch>50)startc2=startc3;
s=s+1;
}
c1=startc1;
t=0;
k1=10;
while(t<100){
k1=k1+Math.pow(k1,a)-c1;
r1=(1-tk[t+1])*a*Math.pow(k1,a-1);
c2=c1*(beta*(1+r1));
c1=c2;
System.out.println(k1);
t=t+1;
}
}
static double checkc(double[] tk,double startc){
double a,beta;
double c1,k1,r1,c2,ch,tk1;
int t,t1,pp;
a=0.33;
beta=0.95;
c1=startc;
t=0;
pp=0;
k1=10;
while(t<200){
t1=t+1;
if(t1>100)t1=100;
tk1=tk[t1];
k1=k1+Math.pow(k1,a)-c1;
r1=(1-tk1)*a*Math.pow(k1,a-1);
c2=c1*(beta*(1+r1));
if (k1<0)pp=100;
if (pp>50)t=1000;
c1=c2;
t=t+1;
}
ch=0;
if (pp>50)ch=100;
return ch;
}
}
最終更新:2010年01月22日 04:48