|
uchinyan |
|
はい、こんにちは。今回はどうも理屈がもう一つでした...
答え、654個、は、プログラム組んですぐに出ました。perl です。 # Sansuu Challenge 479 $r = 1.07; $n = 10000; @p = (); foreach (1..$n) { $a = int($_ * $r); if($a <= $n) { push(@p,$a); } } $c = $n - @p; print "ありえない金額の個数:$c"; 問題は理屈なのですが...ポイントは、 ・0.07 * 15 = 1.05 なので、15 番目ごと、差は 14、で消費税込みの金額が +1 されそうなこと。 ・10000 * 1.07 = 10700 なので、多くとも、消費税込みの金額のうち 700 個以下のありえない金額があること。 でしょうか。ただ、実際に少しやってみると、前者は余り簡単ではないようで、少しずれが生じます。 正確な評価は面倒そうなので、10000/1.07 = 9345.79... より、おおよそ、 9345 * 1.07 = 9999.15 -> 9999 9346 * 1.07 = 10000.22 -> 10000 = 9999 + 1 ... 9356 * 1.07 = 10010.92 -> 10010 9357 * 1.07 = 10011.99 -> 10011 = 10010 + 1 9358 * 1.07 = 10013.06 -> 10013 = 10011 + 1 + (+1) ... 9370 * 1.07 = 10025.90 -> 10025 9371 * 1.07 = 10026.97 -> 10026 = 10025 + 1 9372 * 1.07 = 10028.04 -> 10028 = 10026 + 1 + (+1) <--- 9372 = 9358 + 14 ... 9999 * 1.07 = 10698.93 -> 10698 10000 * 1.07 = 10700 = 10698 + 1 + (+1) となることから、[x] を x の整数部分を与えるとして(いわゆるガウスの記号)、 (10700 - 10000) - [(10000 - 9346)/14] = 700 - [654/14] = 700 - [46.7...] = 700 - 46 = 654 個 とやってみました。 今回はこれが正解なのですが、この計算では、一般には、ブレが出るようです。 正しい理屈は、掲示板を読んで勉強します。 |
|
ネコの住む家
12月1日(木) 12:53:07
MAIL:uchi@sco.bekkoame.ne.jp 26262 |