Tugas Anda adalah menghitung akar kuadrat dari 2 menggunakan Metode Newton - dengan sedikit twist. Program Anda adalah menghitung iterasi menggunakan Metode Newton, dan mengeluarkan kode sumber untuk iterasi berikut (yang harus dapat melakukan hal yang sama).
Metode Newton dijelaskan secara mendalam di Wikipedia
Untuk menghitung akar 2 menggunakan metode Newtons, Anda:
- Menetapkan
f(x) = x^2 - 2
- Menetapkan
f'(x) = 2x
- Tentukan
x[0]
(tebakan awal)= 1
- Menetapkan
x[n+1] = x[n] - (f[n] / f'[n])
Setiap iterasi akan bergerak x [n] lebih dekat ke akar kuadrat dari dua. Jadi -
x[0] = 1
x[1] = x[0] - f(x[0])/f'(x[0]) = 1 - (1 ^ 2 - 2) / (2 * 1) = 1.5
x[2] = x[1] - f(x[1])/f'(x[1]) = 1.5 - (1.5 ^ 2 - 2) / (2 * 1.5) = 1.416666667
x[3] = x[2] - f(x[2])/f'(x[1]) = 1.416666667 - (1.416666667 ^ 2 - 2) / (2 * 1.416666667) = 1.414215686
- dan seterusnya
Program Anda akan:
- Hitung di
x[n]
manan
adalah berapa kali program telah dijalankan - Keluarkan kode sumber ke program yang valid dalam bahasa yang sama yang harus menghitung
x[n+1]
dan memenuhi kriteria yang sama dari pertanyaan ini. - Baris pertama dari kode sumber harus hasil perhitungan, dikomentari dengan benar. Jika sumber membutuhkan sesuatu yang khusus (seperti shebang) pada baris pertama, hasilnya dapat diletakkan pada baris kedua.
Catat itu
- Program Anda harus menggunakan tebakan awal
x[0] = 1
- The Standard Celah berlaku
- Setiap fungsi built-in, root kuadrat atau xroot dilarang
- Program Anda tidak boleh menerima input apa pun. Itu harus sepenuhnya mandiri.
Skor Anda adalah ukuran program awal Anda dalam UTF-8 byte. Skor terendah menang.
x = x-(x*x-2)/(2*x)
?