Ora din București

Toate notițele

Cum funcționează experimentul din antet

Banda de puncte din partea de sus a primei pagini e un experiment cu două fante. Nu e un video pus pe repeat. Fiecare punct e un electron detectat, generat live în browserul tău.

Fizica

Trimite electroni pe rând prin două fante înguste și notează unde ajunge fiecare. O singură detecție pare întâmplătoare. După câteva mii, punctele se strâng în benzi: franje de interferență. Fiecare electron se comportă ca o undă care a trecut prin ambele fante.

În aproximația de câmp îndepărtat, probabilitatea ca electronul să ajungă în poziția x pe ecran este

I(x) = sinc²(αx) · cos²(βx)

Termenul cos² vine din interferența celor două fante. Anvelopa sinc² vine din lățimea fiecărei fante. α stabilește cât de lată e anvelopa, iar β cât de apropiate sunt franjele.

Încearcă mai jos. Sliderele schimbă lățimea fantelor, distanța dintre ele și lungimea de undă a electronilor. Linia e I(x), punctele sunt electroni generați din ea unul câte unul, iar comutatorul pune un detector pe fante.

linia: I(x) · punctele: electroni

Când te uiți la fante

Acum pune un detector pe fante, ca să știi prin care a trecut fiecare electron. Termenul cos² dispare și rămâne doar anvelopa, o singură cocoașă largă. Dacă știi drumul, interferența dispare.

Pe site, când treci cu cursorul peste bandă pornește detectorul. Detecțiile noi vin din anvelopă, franjele vechi se estompează, iar benzile dispar. Când muți cursorul, revin. Iar mișcarea cursorului pe orizontală schimbă lungimea de undă a electronilor: undele mai scurte apropie franjele.

Eșantionarea

Ca să generez detecții din I(x), folosesc rejection sampling. Aleg un x aleator în [−1, 1] și un u aleator în [0, 1). Dacă u < I(x), păstrez x. Altfel, încerc din nou. I(x) are maximul 1, deci metoda merge mereu și e destul de ieftină ca s-o rulez de vreo 160 de ori pe secundă.

const pdf = (x, watching) => {
  const s = ALPHA * x;
  const envelope = s === 0 ? 1 : (Math.sin(s) / s) ** 2;
  return watching ? envelope : envelope * Math.cos(BETA * x) ** 2;
};

Fiecare detecție primește un y aleator și un timestamp. Punctele se estompează în douăsprezece secunde, așa că modelul se reconstruiește continuu în loc să se umple. Detecțiile noi apar o clipă în culoarea de accent, ca să vezi electronii ajungând unul câte unul.

Ca să rămână ieftin

Canvas-ul se redesenează de până la 60 de ori pe secundă, doar cât e pe ecran și tab-ul e activ. Pagina pornește cu vreo 1.900 de detecții deja plasate, așa că franjele sunt acolo de la primul cadru.

alte notițe

|mcnu⟩.ro
© 2026 Andrei Mocanubuild eecef49