目次
前
次
鶴亀算処理(Python)
鶴亀算は、小学校の算数で扱っていましたが
2元連立方程式を立てて解けば、鶴亀の頭数
は、すぐに求められます。
2元連立方程式を解くのが、面倒なのでスクリプトを
使って、答えを求めてみました。
まず、鶴亀算の出題を見てみます。
鶴と亀が合わせて8頭、足の数が合わせて26本ならば
鶴と亀は何頭いるか。
鶴の足は2本、亀の足は4本とする。
鶴と亀の頭数をx、yとして、合計8頭いるので
x+y = 8
鶴の足は2本であるので、足の数は2x。
亀の足は4本であるので、足の数は4y。
合わせて26本なので、次の式が成り立つ。
2x+4y=26
式だけを抜き出すと、以下。
x+ y=8
2x+4y=26
鶴と亀の頭数は、1頭以上で整数という条件から
rangeを使って1から7まで変化させ、上の方程式
に合致する組み合わせがあると考えました。
スクリプトは、次のようにループを構成すればよいはず。
for e in range(1,8,1):
# calculate y = 8 - x
# calculate x + y
# calculate 2x + 4y
# judge
# show result
x+y=8 から y を求めて
そのxとyで、x+yを計算する
関数を用意。
def xy(x,y):
result = x + y
return result
xとyで、2x+4yを計算する
関数を用意。
def x2y4(x,y):
result = 2 * x + 4 * y
return result
関数を用意したので、計算を担当する
スクリプトに入れます。
for e in range(1,8,1):
# calculate y = 8 - x
f = 8 - e
# calculate x + y
xx = xy(e,f)
# calculate 2x + 4y
yy = x2y4(e,f)
# judge
# show result
方程式の右辺の値と一致しているのかを
判定する処理を追加。
for e in range(1,8,1):
# calculate y = 8 - x
f = 8 - e
# calculate x + y
xx = xy(e,f)
# calculate 2x + 4y
yy = x2y4(e,f)
# judge
judges = ''
if xx == 8 and yy == 26 :
judges = '<= correct answer !'
# show result
print('x=',e,'y=',f,'x+y=',xx,'2x+4y=',yy,judges)
判定結果が、一致していれば、答とわかるように
文字列を追加して対応。
スクリプトとしてまとめると、以下。
def xy(x,y):
result = x + y
return result
def x2y4(x,y):
result = 2 * x + 4 * y
return result
print('x+y= 8','2x+4y= 26')
for e in range(1,8,1):
f = 8 - e
xx = xy(e,f)
yy = x2y4(e,f)
judges = ''
if xx == 8 and yy == 26 :
judges = '<= correct answer !'
print('x=',e,'y=',f,'x+y=',xx,'2x+4y=',yy,judges)
スクリプトを使って、解を求めてみます。
これで、鶴亀算をスクリプトを使って解くことが
できました。
グラフを描いて、2つの直線の交点を求める方法でも
解を得られますが、スクリプトを使う方が楽とわかり
ます。
目次
前
次