猫でもわかるWebプログラミングと副業

本業エンジニアリングマネージャー。副業Webエンジニア。Web開発のヒントや、副業、日常生活のことを書きます。

yukicoder no.221/222/223 に参加しました。

あやややや!射命丸文です。機能の yukicoder に参加しました。yukicoder はゆるふわだと聞いたので、始めて参加するコンテストにはいいかなぁと思ってたんですが、以外と難しかったです。結果はこちら

f:id:yoshiki_utakata:20150606130805p:plain

一応2問は解くことができました。しかもWrond Answerはゼロ!初めてにしてはいい感じな気がします。これから自分の解き方について説明していきます。最高最速の名にふさわしく、今回はC++を使って解きました!

no.221 犯罪都市

確率の問題、はじめて解いたので混乱してしまいました。

幻想郷には10000人あたりにN人の犯罪者がいるとします。ひいぃ〜怖いっ!そこでにとりさんが、犯罪者判定器を作りました!なんとこの判定器は、犯罪者 or 犯罪者でない を99%で当てられるマシンのようです。すごいっ!このマシンの結果を元に犯罪者を逮捕していった結果、誤認逮捕率を求めよという問題です!

方針

誤認逮捕率というのは、

 \frac{犯罪者でないのに逮捕された人数}{全逮捕人数}

で求められます。もっと言うと、

 \frac{犯罪者でないのに逮捕された人数}{犯罪者で逮捕された人数 + 犯罪者でないのに逮捕された人数}

となります。

`` 犯罪者で逮捕された人数 = N * 0.99 犯罪者でないのに逮捕された人数 = (10000 - N) * 0.01

となるので、これらを使えば求められます。ちょっと時間がかかってしまいました…


# no.222 引き算と足し算

演算子の+, - は逆になるんですが、符号としての+, -は逆にならないみたいですね… これは厄介です。

見つかった +, - にたいして、その前にあるのが数字ならこれは演算子であると判断しました。それで予めそのような +, - は逆の記号に置き換えてしまって、あとは頑張って計算する機構を実装したら通りました!