今回は、ちょっと上位な感じの問題にチャレンジしてみました。

ズバリ、連立方程式を解く!

コードのロジックを考えないといけないのはもちろん、連立方程式なんて中学の算数の授業以来やって無い!
記憶を呼び戻しながら、頑張ってみました。

問題は、コチラ。

Simultaneous Equation

昔、関数fだの、連立方程式だの、なかなか実用性がピンと来なかったおに、プログラミングを初めてから重要性というか、使い道がなんとなくわかってきた気がします。

ax + by = c
dx + ey = f
この方程式のa~fの値に対応するx,yを求めるコードです。
とりあえず書いてみた・・・。


file = open("simultan.txt")
while text = file.gets do
array = text.split(/\s/)
for i in 0..5 do
array[i] = array[i].to_i
end
x = (array[2] * array[4] - array[5] * array[1]).to_f/(array[0] * array[4] - array[3] * array[1]).to_f
y = (array[2] * array[3] - array[5] * array[0]).to_f/(array[1] * array[3] - array[4] * array[0]).to_f
puts(x)
puts(y)
end
file.close

xとy、それぞれをたすき掛けして、式の差を求める方法でコードを書いてみました。
問題文では、答えを小数点以下第4位を四捨五入せよとのこと。
う~ん、まだのそ辺りは学習してないので、とりあえず答えは未完成で保留ということにしておこう。

もうちょっと数字くらすを勉強してから再チャレンジ!