Цель проста: вывести ненулевое реальное решение 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
. Пожалуйста, не говорите: «Вы должны на самом деле его вычислить», поскольку подобные требования слишком расплывчаты, чтобы работать.