目標は単純です。最小のバイト数で、inputを指定xして、方程式に非ゼロの実数解を出力します。sin(x) = -mxm
仕様:
- あなたの答えは3つの重要な数字に正解でなければなりません。
- 簡単な解以外の実際の解を出力できます
x=0。m少なくとも1つのソリューションが存在すると想定できます。あなたも仮定することができ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
また、
—
xnor 2016年
x=0ささいな解決策です。必要なソリューションを指定する必要があります。
ゼロ以外の解を保証するには、mの境界が必要です。
—
xnor 2016年
m=0ソリューションがあります(x=kπ整数用k)。m重要な実際のソリューションがない値は、から離れすぎている値です0。
実際の値のソリューションのみを探していますか、それとも複雑な値のソリューションも許可されていますか?
—
マイル
a解決するような入力パラメーターを含めることをお勧めしますsin(x)=-ax。「実際に計算する必要がある」と言わないでください。そのような要件はあいまいすぎて機能しないためです。