Itt a modell szimulációja, nincs benne cos függvény. Az csak a QM referencia volt, hogy lehessen mihez viszonyítani.
Az szimulálja, ami a modell ábrájáról tisztán leolvasható. A foton akkor tud átmenni a polarizátoron, ha a polarizátor optikai tengelye a foton piros területébe esik.
Én ezt a 45 fokos szöget összébb vettem(itt a programban 36-ra) és adtam hozzá egy véletlen szórást.(itt 24 fok)
A KRITIKUS SZÖGEKNÉL JÓL ILLESZKEDIK A KAPOTT GÖRBE A QM-ÉRA.
Mit nem lehet ezen érteni?
int szoras(int u)
{
if(u==0) return 0;
return -u+(rand()%(2*u));
}
void kiserlet()
{
for(int x=0;x<360;x+=3)
{
int hatar=36,veletlen_szog=24;
int szamlalo_alap=0,szamlalo=0;
for(int i=0;i<50000;i++)//egyforma allasu meres
{
int fot_pol=rand()%360,kul;
int val,detektor1=0,detektor2=0;
kul=abs(x-fot_pol+szoras(veletlen_szog));
if(kul>=90&&kul<=270) kul=abs(180-kul);//0-90 fokra korlatozza az erteket
if(kul>=270) kul=abs(kul-360);
detektor1=kul;
kul=abs(x-fot_pol+szoras(veletlen_szog));
if(kul>=90&&kul<=270) kul=abs(180-kul);
if(kul>=270) kul=abs(kul-360);
detektor2=kul;
if(detektor1<hatar)
if(detektor2<hatar) szamlalo_alap++;
}
for(int i=0;i<50000;i++)//meres
{
int fot_pol=rand()%360,kul;
int val,detektor1=0,detektor2=0;
kul=abs(x-fot_pol+szoras(veletlen_szog));
if(kul>=90&&kul<=270) kul=abs(180-kul);
if(kul>=270) kul=abs(kul-360);
detektor1=kul;
kul=abs(0-fot_pol+szoras(veletlen_szog));
if(kul>=90&&kul<=270) kul=abs(180-kul);
if(kul>=270) kul=abs(kul-360);
detektor2=kul;
if(detektor1<hatar)
if(detektor2<hatar) szamlalo++;
}
pixel(x,500-szamlalo*200/szamlalo_alap,255,255,0);
}
}