freeCodeCamp/curriculum/challenges/italian/10-coding-interview-prep/project-euler/problem-144-investigating-m...

2.6 KiB
Raw Blame History

id title challengeType forumTopicId dashedName
5900f3fc1000cf542c50ff0f Problema 144: Indagare i molteplici riflessi di un fascio laser 5 301773 problem-144-investigating-multiple-reflections-of-a-laser-beam

--description--

Nella fisica laser, una "cella bianca" è un sistema a specchio che funge da linea di ritardo per il raggio laser. Il raggio entra nella cella, rimbalza sugli specchi, e alla fine trova la sua via di uscita.

La specifica cella bianca che prenderemo in considerazione è un'ellisse con l'equazione 4{x}^2 + y^2 = 100

Manca la sezione corrispondente a 0.01 ≤ x ≤ +0.01 in alto, permettendo alla luce di entrare e uscire attraverso il foro.

fascio luminoso a partire dal punto (0.0, 10.1) e che attraversa lo specchio al punto (1.4, -9.6) animazione con le prime 10 riflessioni del fascio

Il fascio luminoso in questo problema inizia dal punto (0.0, 10.1) appena fuori dalla cella bianca e incontra per la prima volta lo specchio a (1.4, -9.6).

Ogni volta che il raggio laser colpisce la superficie dell'ellisse, segue la consueta legge di riflessione "l'angolo di incidenza è uguale all'angolo di riflessione". Cioè, sia i fasci incidenti che quelli riflessi formano lo stesso angolo con la linea normale nel punto di incidenza.

Nella figura a sinistra, la linea rossa indica i primi due punti di contatto tra il fascio laser e la parete della cella bianca; la linea blu mostra la linea tangente all'ellisse nel punto di incidenza del primo rimbalzo.

La pendenza m della linea tangente in qualsiasi punto (x, y) della data ellisse è: m = 4 × \frac{x}{y}

La linea normale è perpendicolare a questa linea tangente nel punto di incidenza.

L'animazione a destra mostra le prime 10 riflessioni del fascio.

Quante volte il raggio colpisce la superficie interna della cella bianca prima di uscire?

--hints--

laserBeamReflections() dovrebbe restituire 354.

assert.strictEqual(laserBeamReflections(), 354);

--seed--

--seed-contents--

function laserBeamReflections() {

  return true;
}

laserBeamReflections();

--solutions--

// solution required