« 熱は温度の低い方にのみ流れるのか? | Main | くりこめ詐欺(ネタバレ注意) »

2005.01.17

「四捨五入」40年来の濡れ衣? いや違うか?

「四捨五入」について、40年間近く誤解していたことがあります。
「5」を繰り上げることを
「本当は、真ん中だから、上げても捨ててもいいのだが、便宜上切上げている」
と思い続けてきたのです。

そのため、四捨五入で「5」を上げる度に、「ああ、こいつ得しやがって」とか、
「ああ、5が多いから合計が多めになるな」などと思っていました。

しかし、考えてみたら(みなくても)

0,1,2,3,4 ・・・上
5,6,7,8,9 ・・・捨

なのだから、しっかり「半々」で何も問題ないではありませんか。

・・・しかし・・・(書き始めた時には、ここまでで良いと思っていたのだ)

ふと思い出したことがあります。昔、兄から聞いたことがあるのだけど、
四捨五入で末尾が「5」だった時は(常に捨てるのではなく)その前の数字が
「偶数ならば捨てて、奇数ならば上げる」というやり方もある、と。

(例)
1.5 →2
2.5 →2
3.5 →4
4.5 →4

これは bankers rounding(銀行式丸め)と呼ばれているもので、当然の如く
銀行(日本ではどうか知らないが)で使われる方式だそうです。(ISOにも規定されている!)
「×.5」という「ちょうど半分にした数値」がよく出てくるような時に丸めた後で
平均値を取る場合、普通に四捨五入すると全体的に大きめの値になってしまう
が、銀行式にすると、〈丸める前の値の平均値〉により近くなる、というのです。

◆元の値の平均
(1.5 + 2.5 + 3.5 + 4.5+ 5.5 + 6.5 )/6 = 24/6 = 4.0
◆四捨五入の丸め
( 2 + 3 + 4 + 5 + 6 + 7 )/6 = 27/6 = 4.5
◆銀行式丸め
( 2 + 2 + 4 + 4 + 6 + 6 )/6 = 24/6 = 4.0

ふむ、たしかにそうなるな。
また、こんなことも書いてありました。

例えば12.0と13.0の間を0.1刻みにすると、丸められるべき数は
「9個」ある。その9個のうちの5個を切上げて、4個を切捨てたら、不正確
である。だから「5」は半分を上げて、半分を捨てる。

うーん、本当かな。たしかに「丸めるかどうか考える」対象は9個かもしれな
いけど、「0」だって、その仲間なんじゃないだろうか。丸め対象になる桁の
数字は「0~9」の10種類なんだから、そのうち5個(0~4)を切り捨てて
5個(5~9)を切り上げるのは正しいのではないか。

Bankers roundingが有効なのは「5で終る値が特別多いケース」なのではない
だろうか。

いやいや待てよ・・・とExcelでいろいろやってみた。
300個の数を四捨五入して、元の数とそれぞれを平均(合計でもいいけど)
して比べてみると、たしかに四捨五入した方が値が大きくなる。

「0~4」より「5~9」になる方が多いのだろうか、などと(今から思えば
だよ)アホなことを考えて数えてみるがそんなことはない。 ハタと気付いて、
「丸めた時に足したり引いたりする値」を見てみた、

元   4/5 差
1.0 → 1 0.0
1.1 → 1 -0.1
1.2 → 1 -0.2
1.3 → 1 -0.3
1.4 → 1 -0.4
1.5 → 2 0.5
1.6 → 2 0.4
1.7 → 2 0.3
1.8 → 2 0.2
1.9 → 2 0.1

おお、「引いた値」の合計は 1.0なのに 「足した値」は1.5ではないか。
そうか、「0」はやっぱり特別で「丸められていない」と考えるべきなのか。

かくして、ぼくの40年来の「四捨五入」についての思いに「間違い」はなかったのであった。
つまり「濡れ衣」ではなく、やはり「5」は「悪い奴」だったのだ。

|

« 熱は温度の低い方にのみ流れるのか? | Main | くりこめ詐欺(ネタバレ注意) »

Comments

おぉ、見事な「数字のマジック(トリック?)」ですねぇ。じゃぁ、対抗して「濡れ衣説」の方で話を展開してみますかねぇ。

少数の構造上、四捨五入で問題にする桁の下にも延々と数字があるはずなので、ソレを考えるために、もう一桁小さい数字で計算してみましょう。

捨 sum(0.00,0.01,0.02,・・・・・,0.48,0.49)=12.25
入 sum(0.50,0.51,0.52,・・・・・,0.98,0.99)=12.75

おっ!捨てる方と繰り上げる方の比が縮まりましたねぇ(差50%→4%)。もっと細かい桁まで計算していくと「捨」と「入」の比は限りなく「1」に近付いていく・・・と言うか桁数をドンドン増やしていっても「捨」と「入」の差は、ずぅ~っと「0.5」のまんま推移する訳ですね。つまり、のぶさんが最初に書かれている通り、「0.5」はただ単なる境界値なんで、本来は切り捨てようが繰り上げようがドッチャでも良ぇはずですね。しかしながら今度は少数の構造上の問題で「○捨△入」と言う操作では0.5を「入」にしとかないと0.599・・・・なんてのまで捨てられちゃうので、「5」はあげて貰える側になり、「得しやがる」イメージを持たれてしまうんでしょうね。
と言う訳で、私としては「5は全然ズルくない」と主張させて頂きます。


このくらい答案に書ければ得点貰えますかねぇ?微積分風にグラフの面積なんかで示してやると、ビジュアルで判りやすいんでしょうが、どうもテキストでそんな絵を描く才能は、私にはないようなのでご容赦下さい。

Posted by: 温泉カワセミ | 2005.01.17 10:26 PM

おお、またまた思いがけないコメントありがとうございます。

ふむふむたしかに、0.5の中には0.50001もあれば0.5999もあるなぁ。いろんなところに謎はあるものです。ん?謎でも何でもないって? まあ、そう言わないでください。

感動的発見をした時はアブナイのでよ~く考えようっと。クリティカルシンキング、クリティカルシンキング。

Posted by: のぶ | 2005.01.18 09:20 AM

いやぁ、実はこの手の「数字の操作」だけで状況をイメージするってのは得意ぢゃなくて、最初読ませて頂いたときは、「へぇボタン」を7回くらい押しかけた(手元にあればね)んですが、元と四捨五入との差の合計が「1.5倍」もの違いが出てた結果に違和感を覚えたんですね。そんでもって、どんな操作をしてるんか引き算した表をじぃ~っと眺めていたら、「0.5を境にして上下で対称になってるやん!」と気付いたら、なんとかかんとか状況を把握すること出来ました。(^^;)

Posted by: 温泉カワセミ | 2005.01.18 09:14 PM

この後また新事実?が発覚。
http://www.okada.jp.org/RWiki/index.php?JIS%2CISO%BC%B0%BB%CD%BC%CE%B8%DE%C6%FE

↑これを見ていたら、〈ISO/JIS式丸め〉では

2.5 は 2
3.5 は 4 に丸めますが

2.5001 は 3 にするのだそうです。
言われてみればもっともなんだけど、「注目する桁よりも下まで見にいく」というのが、実に新しいことでした。そんなの人間がやるのは大変じゃないか、と思いましたが、5のうしろに0がず~っと続いていない限りは「上げ」ちゃっていいわけですね。

結論はどうなるのかな。
・1.5とか4.5みたいに余分な桁がない場合に、ふつうに四捨五入すると「多めになる」というのは事実。
・2.522とか余分な桁がある場合に〈ISO丸め〉をやってるつもりで「偶数にするから2だ」なんてやると大間違い(オレだけか?)
・ISO丸めは、ルール通り適用すれば後続の桁がいくらあっても、(四捨五入よりも)精度が高まる

ISO丸めの注意書きにもありましたが、「丸めたものを丸める」のはいけませんね。1.5が実は元は1.47だったりしたら2にするべきではありませんから。そういう意味で有効な桁が小数第1位であるサンプルで「1.5」と言う場合、それは「1.47」なのかもしれない。だから「半分上げて半分捨てる」が正しい、ってことになるのでしょうか?

Posted by: のぶ | 2005.01.19 09:46 AM

へぇ~!そんな「四捨五入」あるんですねぇ。全く知らなんだ。今回マジで「へぇボタン」を15回くらいですねぇ。でも、なんかめんどくさそう・・・・

Posted by: 温泉カワセミ | 2005.01.20 12:57 AM

四捨五入までJIS化されてもねぇ・・・。

しかしこの2日間でずいぶんと面白い知識を得ました。
「ビジュアルに」という話がありましたが、「数直線」を書くとうまく説明できそうな気がします。
 1.5001なら2に丸めるのは当然だけど1.5は「丁度まん中」だから、半々に上げたり捨てたりするのもわかります。あるいは、1.5に「幅」をもたせて「1.45~1.55」を丸めたものであると考えても「半々」が妥当かと。

Posted by: のぶ | 2005.01.20 11:21 AM

The comments to this entry are closed.

TrackBack


Listed below are links to weblogs that reference 「四捨五入」40年来の濡れ衣? いや違うか?:

» Free Composer Ringtones For Nokia [Free Composer Ringtones For Nokia]
Simms did not appear to have us believe. [Read More]

Tracked on 2007.06.02 04:07 PM

« 熱は温度の低い方にのみ流れるのか? | Main | くりこめ詐欺(ネタバレ注意) »