Корінь спіраль може бути обчислена з використанням методи Фейнман для інтегралів по шляхах поширення світла. Ми наблизимо цей інтеграл, використовуючи наступну дискретизацію.
Розглянемо дзеркало, як на цьому зображенні, де Sджерело світла та Pточка, де ми збираємо світло. Ми припускаємо, що світло відбивається в прямому промені від Sкожної точки дзеркала, а потім до точки P. Розділимо дзеркало в Nсегментах, в даному прикладі 13, міченого Aз M, так що довжина шляху світла R=SN+NP, де SNце відстань від Sдо дзеркального сегмента N, і аналогічні для P. ( Зверніть увагу, що на зображенні відстань точок Sі Pдо дзеркала значно скорочено для візуальних цілей. Блок Qдосить не має значення і розміщується виключно для забезпечення відбиття через дзеркало та уникнення прямого світла від SдоP. )
Для заданого хвильового числа Фазор променя світла може бути обчислена як , де знаходиться уявна одиниця. Позначення всіх цих фазорів головою до хвоста від лівого сегмента дзеркала праворуч веде до спіралі Корну. Для 13 елементів та значень, описаних нижче, це дає:kexp(i k R)i
Для великих N, тобто багатьох дзеркальних сегментів, спіраль наближається до "справжньої" спіралі Корну. Перегляньте це зображення, використовуючи різні значення для N:
Виклик
Для заданого Nнехай x(n)буде x -координатний центр n -го сегмента дзеркала ( n = 0,1,2,...,N):
x(n) := n/N-0.5
Нехай SN(n)буде відстань S = (-1/2, 1000)до n-го відрізка дзеркала:
SN(n) := sqrt((x(n)-(-1/2))^2 + 1000^2)
тощо
NP(n) := sqrt((x(n)-1/2)^2 + 1000^2)
Таким чином, загальна відстань, пройдена n -м променем світла, становить
R(n) := SN(n) + NP(n)
Тоді ми визначаємо фазор (комплексне число) променя світла, що проходить через n -й сегмент дзеркала як
P(n) = exp(i * 1e6 * R(n))
Тепер ми розглядаємо сукупні суми (як наближення до інтегралу)
C(n) = P(0)+P(1)+...+P(n)
Мета - намітити кусково-лінійну криву через точки (C(0), C(1), ..., C(n)), де уявна частина C(n)має бути побудована проти її реальної частини.
Введення повинен бути числом елементів N, яке має як мінімум 100 і максимум , щонайменше , 1 мільйон елементів (чим більше , звичайно , дозволено).
Вихід повинен бути ділянку або зображення в будь-якому форматі , щонайменше , 400 × 400 пікселів, або з використанням векторної графіки. Колір лінії, масштаб осей і т. Д. Не мають значення, поки видно форму.
Оскільки це код-гольф, виграє найкоротший код у байтах.
Зверніть увагу, що це не фактична спіраль Корну, а її наближення. Початковий інтеграл шляху був апробований за допомогою наближення Френеля, і дзеркало не має нескінченної довжини і не містить нескінченну кількість сегментів, а також згадане воно не нормалізується амплітудами окремих променів.









nпочинаючи з1, але, погоджуючись з Луїсом і недоліком, які були єдиними відповідачами на момент зміни, я виправив це на те0, що робить дзеркало симетричним і відповідає іншій проблемі. Вибачення.