目次

鶴亀算処理(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つの直線の交点を求める方法でも
 解を得られますが、スクリプトを使う方が楽とわかり
 ます。


目次

inserted by FC2 system