class fou{
public static void main(String args[]){
int s1,s2,sx,sy,m,n;
double x,y,z;
double h;
int pulse[][]=
new int[11][11];
double a[][]=new double[11]
[101];
double b[][]=new double[11][101];
double alpha[][]=new double[101][101];
double beta[][]=new double[101][101];
for (s1=0;s1<11;s1++){
for (s2=0;s2<11;s2++){
pulse[s1][s2]=0;
if (Math.random()>0.5)pulse[s1][s2]=1;
}
}
h=Math.PI/10;
for (s2=0;s2<11;s2++){
for (n=1;n<101;n++){
z=0;
for (s1=-10;s1<11;s1++){
x=s2*h;
sx=s1;
if (sx<0)sx=-sx;
z=z+pulse[sx][s2]*Math.cos(n*x)*h;
}
a[s2][n]=z/Math.PI;
}
}
for (s2=0;s2<11;s2++){
z=0;
for (s1=-10;s1<11;s1++){
x=s1*h;
sx=s1;
if (sx<0)sx=-sx;
z=z+pulse[sx][s2]*h;
}
a[s2][0]=z/Math.PI;
}
for (s2=0;s2<11;s2++){
for (n=1;n<101;n++){
z=0;
for (s1=-10;s1<11;s1++){
x=s1*h;
sx=s1;
if (sx<0)sx=-sx;
z=z+pulse[sx][s2]*Math.sin(n*x)*h;
}
b[s2][n]=z/Math.PI;
}
}
for (m=1;m<101;m++){
for (n=0;n<101;n++){
z=0;
for (s2=-10;s2<11;s2++){
y=s2*h;
sy=s2;
if (sy<0)sy=-sy;
z=z+a[sy][n]*Math.cos(m*y)*h;
}
alpha[m][n]=z/Math.PI;
}
}
for (n=0;n<101;n++){
z=0;
for (s2=-10;s2<11;s2++){
y=s2*h;
sy=s2;
if (sy<0)sy=-sy;
z=z+a[sy][n]*h;
}
alpha[0][n]=z/Math.PI;
}
for (m=1;m<101;m++){
for (n=0;n<101;n++){
z=0;
for (s2=-10;s2<11;s2++){
y=s2*h;
sy=s2;
if (sy<0)sy=-sy;
z=z+a[sy][n]*Math.sin(m*y)*h;
}
beta[m][n]=z/Math.PI;
}
}
for (s1=-10;s1<11;s1++){
for (s2=-10;s2<11;s2++){
x=s1*h;
y=s2*h;
sx=s1;
sy=s2;
if (sx<0)sx=-sx;
if (sy<0)sy=-sy;
System.out.
print(pulse[sx][sy]);
System.out.print(",");
System.out.println(fou2(alpha,beta,x,y));
}
}
}
public static double fou2(double[][] alpha,double[][] beta,double x,double y){
double f2;
int m,n;
f2=0;
for (m=0;m<101;m++){
for (n=0;n<101;n++){
f2=f2+alpha[m][n]*Math.cos(m*y+n*x)+beta[m][n]*Math.sin(m*y+n*x);
}
}
return f2;
}
}
最終更新:2010年09月27日 19:26