タスク
(x、y)の形式で座標の2つのタプル引数を取り、それぞれの線形関数を(a、c)の形式で返す関数L()を記述します。ここで、aはx項とcの係数です。 y切片です。
入力はx軸に垂直な線ではなく、2つの入力は別々の点であると想定できます。
得点
これがコードゴルフです:最短プログラムが勝ちます。
注意:基本的な演算子(+、-、/、*)以外の数学関数は使用しないでください。
例
これが、Pythonでの私の理想的なソリューションです。
def L(Point1, Point2):
x = 0
y = 1
Gradient = (float(Point1[y]) - float(Point2[y])) / (float(Point1[x]) - float(Point2[x]))
YIntercept = Point1[y] - Gradient * Point1[x]
return (Gradient, YIntercept)
出力:
>>> L( (0,0) , (1,1) )
(1.0, 0.0)
>>> L( (0,0) , (2,1) )
(0.5, 0.0)
>>> L( (0,0) , (7,1) )
(0.14285714285714285, 0.0)
>>> L( (10,22.5) , (5,12.5) )
(2.0, 2.5)
L((0,0),(0,0))?
L( (0,0) , (0,1) )?