Цель проста: вывести ненулевое реальное решение xуравнения с sin(x) = -mxучетом входных данных mв наименьшем количестве байтов.
Характеристики:
- Ваш ответ должен быть верным с 3 значащими цифрами.
- Вы можете вывести любое реальное решение, кроме тривиального
x=0. Можно предположитьm, что существует хотя бы одно решение. Вы также можете предположитьm!=0.
Очевидно неоптимальное решение Python с использованием градиентного спуска :
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
Контрольные примеры
-0.25 -> ±2.4746
-0.1 -> ±2.8523 or ±7.0682 or ±8.4232
0.2 -> ±4.1046 or ±4.9063
x=0это тривиальное решение. Вы должны указать, какое решение вы хотите.
m=0есть решения ( x=kπдля целых чисел k). Значения, mкоторые не имеют нетривиальных реальных решений, являются значениями, которые слишком далеки от 0.
aрешитьsin(x)=-ax. Пожалуйста, не говорите: «Вы должны на самом деле его вычислить», поскольку подобные требования слишком расплывчаты, чтобы работать.