読者です 読者をやめる 読者になる 読者になる

CheckiOがレベルが8に

CheckiOをまだ続けています。レベルが8になりました。HOMEとLIBRARY 2.0が100% SOLVEDで、ELECTRONIC STATIONもあと1問で100%になります。

これまでで、いちばん難しかったのはこの問題です。

金と鉄と銅と錫、それそれの部分的な割合が教えてもらえるので、それから全体に対する金の割合を求めます。割合は分数(PythonのFractionという型)で計算しなさい、ということです。変数が4つの連立一次方程式をとけばいいのですが、線形代数の知識が前世の記憶かというくらい薄れているので、Google先生を頼ってしまいました。(それまではPythonの文法を調べるだけで、ずっと自力で解いていたのですが…)

これをコピペして修正すればいけそうです。floatにして割っているところをFractionにします。なるほどそうすれば、round()で丸めている部分が必要なくなります。

ですが問題によってうまくいかないのがあって、「ゼロで割っている!」と怒られます。
なのでやっぱり少し理解しようとお勉強。

ピボット選択というのを毎回やれ、ということなので、"# permute the matrix -- ..."から"print 'm is ', m"までの(行の入れ替えをしている)部分を

# reduce, such that the last row is has at most one unknown
for rrcol in range(0, colrange):

の下のところで毎回やったら、ゼロで割ることはなくなりました。めでたしめでたし。

(ソースを公開すればいいのですが、公開(publications)の仕方がわからない...いや人のコピペだから公開しにくいし...)