freeCodeCamp/curriculum/challenges/portuguese/08-coding-interview-prep/project-euler/problem-144-investigating-m...

2.2 KiB
Raw Blame History

id challengeType title videoUrl localeTitle
5900f3fc1000cf542c50ff0f 5 Problem 144: Investigating multiple reflections of a laser beam Problema 144: Investigando múltiplos reflexos de um raio laser

Description

Na física do laser, uma "célula branca" é um sistema de espelho que atua como uma linha de atraso para o feixe de laser. O feixe entra na célula, salta nos espelhos e, eventualmente, retorna. A célula branca específica que iremos considerar é uma elipse com a equação 4x2 + y2 = 100 A seção correspondente a 0.01 ≤ x ≤ +0.01 na parte superior está faltando, permitindo que a luz entre e saia através do orifício.

O feixe de luz neste problema começa no ponto (0.0,10.1) do lado de fora da célula branca, e o feixe primeiro impacta o espelho em (1.4, -9.6). Cada vez que o feixe de laser atinge a superfície da elipse, segue a lei usual de reflexão "ângulo de incidência é igual a ângulo de reflexão". Ou seja, os feixes incidentes e refletidos fazem o mesmo ângulo com a linha normal no ponto de incidência. Na figura à esquerda, a linha vermelha mostra os dois primeiros pontos de contato entre o raio laser e a parede da célula branca; a linha azul mostra a linha tangente à elipse no ponto de incidência do primeiro salto. A inclinação m da linha tangente em qualquer ponto (x, y) da elipse dada é: m = 4x / yA linha normal é perpendicular a essa linha tangente no ponto de incidência. A animação à direita mostra os primeiros 10 reflexos do feixe.

Quantas vezes o feixe atingiu a superfície interna da célula branca antes de sair?

Instructions

Tests

tests:
  - text: <code>euler144()</code> deve retornar 354.
    testString: 'assert.strictEqual(euler144(), 354, "<code>euler144()</code> should return 354.");'

Challenge Seed

function euler144() {
  // Good luck!
  return true;
}

euler144();

Solution

// solution required