はじめに
先日、大学入試の問題を解いていた時に実装したコードの備忘録です。
ユークリッドの互除法に関する入試問題の解を確認できます。
Python3環境下にて、是非お使いください。
本編
#sympy内の関数を使用
from sympy import *
#変数x,yの定義と定数a,b,cの入力
x = Symbol('x')
y = Symbol('y')
a,b,c = map(int,input("a,b,c=??").split())
#方程式の定義
expr1 = a*x+b*y -c
#xを求める
expr2 = a*x % b -c%b
i = 0
while expr2.subs(x,i) !=0:
expr2.subs(x,i)
i += 1
#求めたxの値を代入し、yを求める
expr1 = expr1.subs(x,i)
sol = solve(expr1,y)
#出力
print("x="+str(i))
print("y="+str(sol[0]))
使い方
▶a,b,cは半角スペースで区切り、入力してください。
▶外部ライブラリにつき、予めインストールを要します。(以下、入力例)
conda install sympy #エラーが起これば、下のコマンドを実行してください。
pip install sympy
留意点
- a≠0、b≠0で入力をお願いいたします。
- 試用していただいた@StrawBerryMoonさんに対し、この場を借りて感謝申し上げます。
不定方程式につき(x,y)が複数組存在することがあります。
あくまで入試問題の検算用に留めていただけると幸いです。
References
More Info
- About Sympy:https://www.sympy.org/en/index.html
- About How to Use Sympy: https://note.nkmk.me/python-sympy-factorization-solve-equation/
About me
-
SNS landing page(lit.link): https://lit.link/myon123
-
Twitter(仕事用): https://twitter.com/myonitbusiness
-
Twitter(プライベート用): https://twitter.com/myonmusicpgdev
-
YouTube(Composer): https://www.youtube.com/channel/UC22_pvlkQynYsrSpAfyzEzA
-
SpeakerDeck: https://speakerdeck.com/myon_bioinformatics
-
マシュマロ(質問箱): https://marshmallow-qa.com/myonitbusiness
-
Microsoft TechNet: https://social.msdn.microsoft.com/Profile/myon.TechNet
-
プロフカード: https://profcard.info/u/ziUhwgZihSSTLZdqPZ0gz5aru6A3
-
ニコニコ動画(niconico): https://www.nicovideo.jp/user/126513036
-
Wish List: https://www.amazon.co.jp/hz/wishlist/ls/290EJPJ3PAS73?ref_=wl_share
-
転職ドラフト: https://job-draft.jp/users/58541
-
RESUME.id: https://www.resume.id/myon
-
Wantedly: https://www.wantedly.com/id/myon123
-
Mastodon: https://mstdn.social/@myon
-
Instagram: https://www.instagram.com/myonmusicpgdev
-
Pinterest: https://www.pinterest.jp/myonmusicpgdev
-
Forkwell: https://portfolio.forkwell.com/@myon