Skip to content

Instantly share code, notes, and snippets.

@nyunerrr
Created May 22, 2020 13:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nyunerrr/bc3e7c41adb2f344da339ea0b6503a74 to your computer and use it in GitHub Desktop.
Save nyunerrr/bc3e7c41adb2f344da339ea0b6503a74 to your computer and use it in GitHub Desktop.
def Q14(x1,y1,x2,y2):
a = (y2-y1)/(x2-x1)
b = y1-a*x1
if(b>0):
s = ["y=",str(a),"x+",str(b)]
elif(b==0):
s = ["y=",str(a),"x"]
else:
s = ["y=",str(a),"x",str(b)]
return ''.join(s)
#おそらくこの問題が一番難しいでしょう。
#指定のフォーマットを計算するためには、工夫が必要です。
#2点の座標から一次関数を導く公式
#y-y1 = (y2-y1)/(x2-x1) * (x-x1) を y = の形に変形します。傾きをaとおくと、
#y = ax - ax1 + y1
#となるので、b = ax1 + y1 とおき、a,bをそれぞれ計算します。
#bの扱いにも注意が必要です。
#bが正のとき、y=ax+b の + を余計に文字列に付け加える必要があります。
#また、b=0のときに y=ax+0 などと出力すると間違えになります。
#bが負のときは”-”がbの前につくので、"-"を付け加える処理をすると y=ax--b などと出力され、間違えになります。
#あとは"y=","a","x","+or-","b" をこの順で連結させた文字列を出力すればいいです。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment