アットウィキロゴ

pgh

import 'dart:html';
import 'dart:math';
 
void main() {
 
  int m;
  List<double> cx=new List<double>(1001);
  List<double> lx=new List<double>(1001);
  List<double> th=new List<double>(11);
  List<double> k=new List<double>(101);
 
  for (m=1;m<11;m++){ 
    th[m]=0.95+0.01*m; 
  } 
 
  double a,beta;
 
  a=0.33; 
  beta=0.95; 
 
game sub=new game();
sub.th=th;
sub.a=a;
sub.beta=beta;
sub.makedata();
cx=sub.cx;
lx=sub.lx;
 
double c1;
 
c1=sub.getc(5,50);
 
String str=c1.toString();
 
querySelector('#sample').text=str;
 
 
}
class game{
 
  List<double> cx=new List<double>(1001);
  List<double> lx=new List<double>(1001);
  List<double> cxs=new List<double>(1001);
  List<double> lxs=new List<double>(1001);
  List<double> th=new List<double>(11);
  List<double> k=new List<double>(101);
 
  int s,sx;
  int m,n;
  double a,beta;
  double ls,ks;
  double h;
  double c1,l1,k1;
  double n1;
  int n2,n3;
 
void makedata(){ 
 
 
 
 
 
  ls=(1-a)/(2-a); 
  ks=ls*pow((1 / beta - 1) / a , 1 / (a - 1)); 
  h=2*ks/100; 
 
  h=2*ks/100; 
  for (n=1;n<101;n++){ 
    k[n]=n*h; 
    for (m=1;m<11;m++){ 
      l1=ls; 
      setl(m,n,l1);
      c1=th[m]*pow(k[n],a)*pow(l1,1-a); 
      setc(m,n,c1);
    } 
  } 
 
  int t,mx;
  double uc,w1,r1;
  double ep;
 
  t=0; 
  while(t<100){ 
    for (m=1;m<11;m++){ 
      for (n=10;n<91;n++){ 
        c1=getc(m,n);
        l1=getl(m,n);
        k1=k[n]+th[m]*pow(k[n],a)*pow(l1,1-a)-c1; 
        n1=k1/h; 
        n2=n1.floor(); 
        n3=n2+1; 
        uc=0.0; 
        for (mx=1;mx<11;mx++){ 
          c1=getc(mx,n2)+(n1-n2)*(getc(mx,n3)-getc(mx,n2)); 
          l1=getl(mx,n2)+(n1-n2)*(getl(mx,n3)-getl(mx,n2)); 
          r1=th[mx]*a*pow(k1,a-1)*pow(l1,1-a); 
          uc=uc+(beta*(1+r1))/c1; 
        } 
        uc=0.1*uc; 
        setcs(m,n,1/uc); 
        w1=th[m]*(1-a)*pow(k[n],a)*pow(getl(m,n),-a); 
        setls(m,n,1-getc(m,n)/w1); 
      } 
    } 
    ep=0.0; 
    for (m=1;m<11;m++){ 
      for (n=10;n<91;n++){ 
        ep=ep+pow(getc(m,n)-getcs(m,n),2)+pow(getl(m,n)-getls(m,n),2); 
      } 
    } 
    for (m=1;m<11;m++){ 
      for (n=10;n<91;n++){ 
        setc(m,n,getcs(m,n)); 
        setl(m,n,getls(m,n)); 
      } 
    } 
    if (ep<0.0001)t=1000; 
    t=t+1; 
  } 
 
 
 
 
} 
 
 
double getcs(int s,int sx){
int n;
double c1;
n=number(s,sx);
c1=cxs[n];
return c1;
}
void setcs(int s,int sx,double c1){
int n;
n=number(s,sx);
cxs[n]=c1;
}
double getls(int s,int sx){
int n;
double c1;
n=number(s,sx);
c1=lxs[n];
return c1;
}
 
void setls(int s,int sx,double c1){
int n;
n=number(s,sx);
lxs[n]=c1;
}
 
double getc(int s,int sx){
int n;
double c1;
n=number(s,sx);
c1=cx[n];
return c1;
}
void setc(int s,int sx,double c1){
int n;
n=number(s,sx);
cx[n]=c1;
}
double getl(int s,int sx){
int n;
double c1;
n=number(s,sx);
c1=lx[n];
return c1;
}
void setl(int s,int sx,double c1){
int n;
n=number(s,sx);
lx[n]=c1;
}
int number(int s,int sx){
int n;
  n=100*(s-1)+sx;
return n;  
}
 
}
最終更新:2013年11月20日 20:07