Cel jest prosty: wyprowadzić niezerowe rzeczywiste rozwiązanie xrównania sin(x) = -mx, biorąc pod uwagę dane wejściowe m, w jak najmniejszej liczbie bajtów.
Dane techniczne:
- Twoja odpowiedź musi być poprawna na 3 znaczące liczby.
- Możesz wypisać dowolne prawdziwe rozwiązanie inne niż rozwiązanie trywialne
x=0. Możesz założyćm, że istnieje co najmniej jedno rozwiązanie. Możesz również założyćm!=0.
Oczywiście nieoptymalne rozwiązanie python wykorzystujące pochylenie gradientu :
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
Przypadki testowe
-0.25 -> ±2.4746
-0.1 -> ±2.8523 or ±7.0682 or ±8.4232
0.2 -> ±4.1046 or ±4.9063
x=0to rozwiązanie trywialne. Powinieneś określić, które rozwiązanie chcesz.
m=0ma rozwiązania ( x=kπdla liczb całkowitych k). Wartości, mktóre nie mają nietrywialnych rzeczywistych rozwiązań, to te, które są zbyt dalekie 0.
arozwiązaniasin(x)=-ax. Nie mów „musisz to wyliczyć”, ponieważ takie wymagania są zbyt niejasne, aby działały.