The Cornu Spiral dapat dihitung dengan menggunakan metode Feynman untuk integral lintasan propagasi cahaya. Kami akan memperkirakan integral ini menggunakan diskresi berikut.
Pertimbangkan cermin seperti pada gambar ini, di mana S
sumber cahaya dan P
titik di mana kita mengumpulkan cahaya. Kami menganggap cahaya memantul dalam sinar lurus dari S
ke setiap titik di cermin dan kemudian ke titik P
. Kami membagi cermin menjadi N
segmen, dalam contoh ini 13, berlabel A
untuk M
, sehingga panjang jalan cahaya R=SN+NP
, di mana SN
adalah jarak dari S
segmen cermin N
, dan sama untuk P
. ( Perhatikan bahwa dalam gambar jarak titik S
dan P
ke cermin telah diperpendek banyak, untuk tujuan visual. Blok Q
agak tidak relevan, dan ditempatkan murni untuk memastikan refleksi melalui cermin, dan menghindari cahaya langsung dari S
keP
. )
Untuk bilangan gelombang tertentu k
, fasor sinar cahaya dapat dihitung sebagai exp(i k R)
, di mana i
adalah unit imajiner. Merencanakan semua fasor ini dari ujung ke ujung dari segmen cermin kiri ke kanan mengarah ke spiral Cornu. Untuk 13 elemen dan nilai yang dijelaskan di bawah ini memberikan:
Untuk besar N
, yaitu banyak segmen cermin, spiral mendekati spiral Cornu "benar". Lihat gambar ini menggunakan berbagai nilai untuk N
:
Tantangan
Untuk yang diberikan N
biarkan x(n)
menjadi pusat x- koordinat segmen cermin ke- n ( n = 0,1,2,...,N
):
x(n) := n/N-0.5
Membiarkan SN(n)
menjadi jarak S = (-1/2, 1000)
ke segmen cermin ke-n:
SN(n) := sqrt((x(n)-(-1/2))^2 + 1000^2)
dan demikian pula
NP(n) := sqrt((x(n)-1/2)^2 + 1000^2)
Jadi total jarak yang ditempuh oleh sinar ke- n adalah
R(n) := SN(n) + NP(n)
Kemudian kita mendefinisikan fasor (bilangan kompleks) dari sinar cahaya melalui segmen cermin ke- n sebagai
P(n) = exp(i * 1e6 * R(n))
Kami sekarang mempertimbangkan jumlah kumulatif (sebagai perkiraan untuk integral)
C(n) = P(0)+P(1)+...+P(n)
Tujuannya sekarang adalah memetakan kurva linier piecewise melalui titik-titik (C(0), C(1), ..., C(n))
, di mana bagian imajiner C(n)
harus diplot terhadap bagian aslinya.
The masukan harus jumlah elemen N
, yang memiliki minimal 100 dan maksimal minimal 1 juta elemen (lebih tentu saja diperbolehkan).
The keluaran harus plot atau gambar dalam format apapun minimal 400 × 400 piksel, atau menggunakan grafis vektor. Warna garis, skala sumbu dll tidak penting, asalkan bentuknya terlihat.
Karena ini adalah kode-golf, kode terpendek dalam byte akan menang.
Harap dicatat bahwa ini bukan spiral Cornu yang sebenarnya, tetapi perkiraan untuk itu. Integral jalur awal telah diperkirakan dengan menggunakan perkiraan Fresnel, dan cermin keduanya tidak memiliki panjang yang tak terbatas dan tidak mengandung jumlah segmen yang tak terbatas, serta disebutkan tidak dinormalisasi oleh amplitudo dari masing-masing sinar.
n
mulai dari1
, tetapi dalam perjanjian dengan Luis dan flawr, yang merupakan satu-satunya penjawab pada saat perubahan, saya memperbaikinya dari0
, yang menjadikan cermin simetris dan sesuai dengan sisa tantangan. Permintaan maaf.