Tujuannya sederhana: Keluarkan solusi nyata yang bukan nol xuntuk persamaan sin(x) = -mx, diberikan input m, dalam jumlah byte paling sedikit.
Spesifikasi:
- Jawaban Anda harus benar hingga 3 angka penting.
- Anda dapat menampilkan solusi nyata selain solusi sepele
x=0. Anda dapat berasumsimbahwa setidaknya ada satu solusi. Anda mungkin juga berasumsim!=0.
Solusi python yang jelas suboptimal menggunakan gradient descent :
from math import *
from random import *
a=x=0.001
m = 5.
def dE(x):return 2*(sin(x)+m*x+1)*(cos(x)+m)
for i in xrange(1000): x-=dE(x)*a
print x
Uji kasus
-0.25 -> ±2.4746
-0.1 -> ±2.8523 or ±7.0682 or ±8.4232
0.2 -> ±4.1046 or ±4.9063
x=0solusi sepele. Anda harus menentukan solusi mana yang Anda inginkan.
m=0punya solusi ( x=kπuntuk integer k). Nilai-nilai myang tidak memiliki solusi nyata non-sepele adalah nilai-nilai yang terlalu jauh dari itu 0.
adipecahkansin(x)=-ax. Tolong jangan katakan "Anda harus benar-benar menghitungnya", karena persyaratan seperti itu terlalu samar untuk bekerja.