Ha veletlenszam-generator egy cos(), akkor ez tortenik. Ekkor a globalis rejtett parameter ennek a fazisa, amihez helyileg mindig hozzaadodik a polarizator polarizacios iranya. Sajnos ez a modell sem jo, idealis esetben max S()=2.65 ad.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
double frandom() {return (double )(rand()%10000)/10000.0;}
double sqr(double n) {return n*n;}
int main()
{
int i,j,n=500000;
double amp1,amp2,counter=0,amp3,amp4,e,a1,a2,f1,f2,rand1,rand2,radian=M_PI/180;
for(j=0;j<180;j+=10)
{
a1=35*radian;//polarizatorok
a2=a1+j*radian;
for(i=0;i<n;i++)
{
int f1=frandom()*M_PI*2;
int f2=frandom()*M_PI*2;
amp1=sqr(cos(a1-f1));//malus torveny
amp2=sqr(cos(a2-f1));
rand1=fabs(cos(a1-f2));//veletlenszam generator
rand2=fabs(cos(a2-f2));
if(amp1>rand1)
if(amp2>rand2)
counter++;
}
counter/=n;
printf("%f %f \n",0.5*sqr(cos(a1-a2)),counter);
}
}
Ajánlott bejegyzések: