順番学研究所のご案内

無料ブログはココログ

カテゴリー「量・個数」の記事

2009年8月 4日 (火)

Excelのバカ!

 前回は消費税率がどのくらいだと、おつりが777円になりやすいかという話をしました。

 このことを調べる際、わたくしはいつものようにExcelを使いました。Microsoft Excel2007です。決して、マイクロソフトが主張するところのまがい物オフィス製品ではなく、マイクロソフトの正規の製品を、ちゃんと買って使いました。

 そして、その計算の過程で、Excelがあろうことか、計算間違いをすることに気付きました。

 そして、このことを、皆さんにお知らせしないわけにはいかないと思ったわけであります。

 具体的にどのような計算間違いをあやつがしたのかと申しますと…

 

 消費税とおつりの関係の計算には、たとえば以下のような式を使います。

  =1000-INT(MOD(51950*1.14,1000))

 これは、「消費税率が14%のとき、本体価格51950円の商品を買って1000円単位の支払いをしたら、おつりがいくらになるかを示す式」です。「MOD」という関数は、ある数字で割ったときの余りを示します。ここでは「51950*1.14」という数字を1000で割ったときの余りを示すようになっています。「INT」という関数は、小数点以下を切り捨てた数字にする関数です。

 この計算を、Excelは間違えました。

 皆さんにはぜひ、お手元の電卓で一緒に計算をしていただきたい。51950円に仮想的消費税である14%を乗っけた金額、つまり51950×1.14は、59223円となります。これを1000で割った余りはいくつになるかといえば、あたりまえですが223円です。この数の小数点以下を切り捨てにしようとしても、小数点以下の数値はないので、そのままですよね。そして最後に、1000から223を引けば、はい、777円のおつりということになります。これが電卓を使って計算した結果です。

 ここまではいいですね。

 ではさっき示した数式を、Excel2007にぶち込んで、計算させてみてください。すると、Excel2007はあろうことか、778という答えを返してきやがるのです。ほら、でしょ?

 これだけで驚いてはいけません。私が遭遇したエラーはこれだけではありませんで、このほかに、二つありました。それは…

 =1000-INT(MOD(28020*1.15,1000))

さらには、

 =1000-INT(MOD(48020*1.15,1000))

というパターンであります。これらも答えが777にならなければなりませんが、やはり同様に778と表示されてしまいます。ちなみにこの症状は、INT関数を使わずに、小数点以下を切り上げる関数であるROUNDUP関数などを使っても矯正されません。同じようにExcelは間違えます。

 まあ、コンピュータは二進法で計算しているから、この手の切り上げや切り捨ての計算でエラーが起こることは、原理的にはわからないでもありません。でも、Excelは昨日や今日、作られたアプリケーションじゃないんだし、結構いい値段で、長い長い年月にわたって売り続けているんだからさー、いい加減、この手のエラーはつぶされていてもいいんじゃないでしょうか。でも、つぶされていないんですねぇー。いちおう、Windows updateも定期的にかけて、Officeもアップデートして最新の状態にしているんですけれど、このエラーは治っていないんですねぇ。おおこわ。

 でも我らがgoogle Docsならきっと正しい答えを出してくれるにきまってます。そのように考えて、マイクロソフトを追い落とそうとしているgoogleに期待をかけ、上記と同じ計算をgoogle docsのSpredsheetでやらせたら、なんと同じように間違えやがりました。なんてこった…。

 じゃあ、同じくマイクロソフトを目の敵にしているサン・マイクロのOpenOfficeだったらどうでしょうね? OpenOfficeは関数の意味や書式が若干Excelと違うので、INTじゃなくてROUNDDOWNとかに書きなおす必要がありますが、そのようにやってみたら、どうでしょう。えいっと入力すると、なんと、こいつも同じように間違えやがります。絶望的な気分になってきました。

 最後に期待をかけて、Linuxの上で動くGnumericというスプレッドシートのアプリケーションで計算させてみました。結果は…、やっぱり間違えましたよぉ。これで全滅です。おおこわ。

 いままで、まさかExcelとかに計算間違いをするようなバグがあるとは、考えもしませんでしたが、2009年の今でも、こういうことが起こるんですね。しかも、他のソフトも全滅だなんて、ちょっとショックです。

 世の中には命にかかわるような計算や、巨額のお金がかかった計算が存在しますけれど、とくに、切り上げや切り捨てが絡む場合は、Excelやその他のスプレッドシートプログラムではやらない ほうがいいですねー。きっちり、10進法で計算してくれるアプリケーションやプログラム環境を探して、そちらでやったほうがいいんじゃないかと思います。

2009年8月 1日 (土)

おつりが777円になる可能性の高い、最もラッキーな消費税率を探せ!

 衆議院選挙が近づくこの頃、バラマキ予算の財源問題に関する議論も盛んになってきました。

 消費税を上げるの上げないのと、議論があるようですが、前回の1997年の橋本政権による消費税アップの後、めちゃめちゃ景気が冷え込んだことも思い出されます。それと同時に、わたくし考えてみますに、消費税が3%から5%に上がって以来、おつりが777円になることがめっきり少なくなったように思うのです。これが、小さなことに喜びを見出していた国民の士気を下げ、景気悪化の一因となったのではないでしょうか。

 コンビニやスーパーなどでおつりに7のゾロ目が出ると、少しテンションが上がって「その日はいいことがあるかも」と思うような、そんなことによすがを求めて細々と生きている人がこの日本には1億人くらいいると思います。そこで、今回はおつりが777円になる可能性が消費税率が3%から5%に上がったことで本当に減ったのかどうか、また、今後どのように消費税を設定したら、おつりが777円になりやすいかを考えてみたいと思います。次の消費税アップの際には、おつりが777円になる可能性が多くなるような消費税率を選ぶべきだと思うのです。

 今回考えるのは、本体価格(税抜き価格)が10円単位の商品を買った場合です。消費税は小数点以下切り捨てにします。支払いを1000円単位でしたときに、おつりが777円になる場合を考えるということです。

 わたくしは、整数論とかそういうのはまったくわからないので、本当はもっとうまい方法があるのかもしれませんが、上記のルールでおつりが777円になるパターンを、消費税率が3%の場合から20%の場合まで、1%刻みでしらみつぶしにExcelを使って探索しました(金額は10万円までを対象としました)。すると、やはり、消費税率3%は、おつりが777円になる場合がもっとも多いことがわかったのです。

 

 消費税率が3%の場合、価格が10万円までの範囲でおつりが777円になる本体価格は以下の11通りです。  

                   
3130
4100
14780
25460
37110
47790
59440
70120
81770
92450

 

  一方、消費税率が5%の場合におつりが777円になるパターンは10通りしかありません。

                 
3070
19260
23070
39260
43070
59260
63070
79260
83070

 

 しかも、黄色く色づけて示したように、1万円以下では3%の場合は2通りあるのに対し、5%の場合1通りしかありません。何ということでしょう。やはり、直観は正しかったのでした。

 さらに、消費税率20%までしらみつぶしに調査した結果、驚くべきことに気付きました。なんと、本体価格が10円単位である限り、どうやってもおつりが777円にならない消費税率が存在するのです。

 そのワースト・ケースとは具体的には、消費税率が12%のときと、20%のときです。したがって、何があっても消費税率を12%や20%にしてはいけません。

 では、消費税を上げなければならないとして、最も777円のおつりになりやすい消費税率はどのようなものなのでしょうか。

 それも調査済みであります。その答えは消費税率19%です。このばあい、本体価格が以下の11通りのパターンで、おつりが777円となります。

 

                   
5230
6070
30440
31280
54810
55650
56490
80020
80860
81700

 

 一応、1万円未満の金額で2通りの可能性があるし、これが最善のパターンのようです。「19%て、税率高杉」とおっしゃるなら、税率17%でもいいかもしれません。

 

                 
1900
3610
16430
18140
30960
32670
45490
60020
74550

 

 これだと、パターンは10通りしかありませんが、1万円以下どころか5000円以下に2通りも「ソリューション」が存在し、庶民派と言えるかもしれません。

それでも気に食わなければ、消費税率9%というのはどうでしょう。

 

               
2040
5710
30480
34150
37820
62590
66260
69930

 

 条件を満たす本体価格は9通りしかありませんが、1万円以下で条件を満たすものが2通りあります。消費税率が10%以下で、1万円以下の価格で2通りのソリューションをもつものは、税率3%のほかには、この税率9%の場合しかありません(税率を1%刻みで設定するとして)。

 為政者の方々は、これらの事実をよくよく踏まえて、消費税率の議論に臨んでいただきたい!

 それはともかく、お店を経営されている皆さんは、消費税5%であるうちに、本体価格が3070円の商品を開発して、お客さんを喜ばせてみてはいかがでしょうか。こういうことで喜ぶおバカは、案外、多いと思いますよ。

2008年6月25日 (水)

電車の数字2 電車の乗客数を素早く見積もる方法

 月曜日の朝、最悪の気分で、めちゃくちゃにこんだ電車に乗って会社に向かう。そんなとき、こう考えることはないだろうか。  「いま、この瞬間、自分と運命を共にしてこの電車に乗っている人の数は何人くらいなのだろうか」、と。  自分だけが不幸なのではない。それはわかっている。問題は、どれくらいの数の人々が、運命を分かち合っているのか、である。  東京周辺の地下鉄やJRで走っている電車は多くの場合、4つドアの車両で10両編成だ。各車両に7人掛けベンチシートが6つと、3人掛けのベンチシートが4つ付いている。この手の電車の乗客の数を素早く見積もる方法を考えた。  結論から言うと…

1 どれでもいいからすぐそばにある7人掛けシートにかけている人の数と、その前で立っている人の数を数える。立っている人のうち、数えるのは車両の右半分、あるいは左半分にいる人だけでよい。

2 すぐそばのドア付近に立っている人の数を数える。このときもまた、数えるのは車両の右半分、あるいは左半分にいる人だけでよい。

3 上記2つの工程で数えた人数を足し、その数を8倍する。それで、その車両にいる乗客の数が算出される。10両編成の電車なら、それをさらに10倍した数が、おおよその乗客数ということになる。

 計算の仕組みは簡単だ。4つドアの車両は、左右合わせてドアが8枚ある。すぐそばのドア前スペースを見て、右半分にいる人数を8倍すれば、その車両のドア前スペースに立っている人の数のだいたい数が把握できる。また、7人掛けのベンチシートは6つある。そのほかに3人掛けシートが4つあるが、3人掛けシート2つで7人掛けシート1つ分と考えても大きな誤差にはならないだろう。つまり、1つの車両には7人掛け8つぶんのシートがあると考えてよい。シートの前に立っている人間の数も同様に考えられる。

 もちろん、この見積もりには、かなりの誤差が生じうる。実測値が平均値から1人ずれただけで、車両の乗客見積もりは8人ずれる。列車全体の見積もりではずれが10倍に膨らみ、80人ずれることになる。2人ずれたとすれば、160人のずれになる。  また、どの車両にも均等に乗客がいないと、この見積もりは不正確になる。ある程度こんだ列車なら、乗客はなるべく空いた車両に乗ろうとするので、あまり偏りが起きないことが期待される。しかし、乗車率が50%を切って、どのシートにも座れる余裕ができているような場合は、車両ごとにかなりの偏りが生じていると考えられるだろう。

 しかし、そのような限界を理解したうえで、一度この方法で乗客の数を数えてみてほしい。この方法を使えば、あなたが乗っている車両の乗客数が一瞬のうちに見積もれることに、まず驚くだろう。さらには、その数が自分が考えるよりずっと多いことに驚くだろう。7人掛けのシートにすこしルーズに6人ずつ座っていて、そこここに人が立っているような車両の場合でも、ざっと70~80人がその車両に乗っていると計算される。それが10両編成で走る電車なら、その10倍、つまり700~800人が運命をあなたと共にしていることがわかる。乗車率が高く込み合っていれば、2000人くらいが1本の列車に乗っていることもある。

 そう考えるとなんだか不思議な感じがしないだろうか。乗客が1000人以上の列車が、日本じゅうで何百本と、毎日走っている。そういう状態が、もう何十年と続いている。そして、自分もそういう列車に毎日乗っている。そういう列車を、毎日運転している運転士がいる。冷静に考えると、これって現代世界の驚異じゃないだろうか。

2007年7月12日 (木)

国立競技場にトイレは何個必要だったか。

 今年は開かれるのかどうか知らないが、何年か続けて、夏にSmapが国立競技場でコンサートを行った。もちろん、コンサートに来るのはほとんどが女性だった。
 さて、そのコンサートには1公演あたり6万人が動員された。公演時間は4時間に及んだという。

 人間はほぼ、1日に1.5~2リットルの尿を排出する。これは、体内で作られた尿が、1分間あたり約1.3ミリリットルずつ膀胱にたまっていくということを意味する。人間の大人が膀胱にためておける尿の量はだいたい最大で500ミリリットルくらい。ということは、最大で6時間くらいはトイレに行かなくても大丈夫ということになる。このように考えると、4時間に及ぶ公演がはじまってから、観客のうちの3分の2以上の人は、トイレに行ったと考えてよいだろう。
 実際にそのコンサートに行ったわけではないが、おそらく、途中に30分程度の休憩があっただろう。コンサート開始後に、トイレに行った観客(たぶん4万人以上)のうち、半分がこの休憩中に行き、後の半分はコンサート終了後に行ったと考えよう。まあ、無理のない仮定といえる。
 つまり、2万人が30分休憩の間にトイレに行ったと考えられるわけだ。女性が、1人1回あたりトイレにかかる時間を1分30秒と考えよう。コンサートに来ていたのはすべて女性だとする。ひとつのトイレで30分間にさばける人数は、30÷1.5=20で、20人。とすると、女性用トイレは合計で、何個必要か。

  20000÷20=1000(個)

 ちょっとした数だ。女性用トイレが極端に狭く、1m四方の面積しかなかったとしても、トイレだけで1000平方メートル(一辺が32mの正方形の面積に相当)が必要。国立競技場の建物面積は33716平方メートル(出典: http://www.naash.go.jp/kokuritu/rikujyou_sisetu.html)だから、1000平方メートルといったら、それなりの割合を占めることになる。実際には通路も必要だし、長い列を成しつつ女性たちが待つスペースも作らなければならない。いずれにしろ、相当な数の仮設トイレが設置されたと考えられる。何個くらいなのだろう。

 では、国立競技場に備え付けの女子トイレは、何個くらいなのか。たぶん、スポーツ施設として利用される場合に必要な数だけしか、設置されていないはずである。国立競技場は、通常5万人収容である(Smapコンサートの際は、アリーナ席も設置して6万人収容とした)。スポーツイベントの際、観客の女性の割合は、半分を超えることはまずないだろう。
サッカーの試合が行われる場合を考えよう。試合はだいたい2時間くらいで終わる。とすると、その間にトイレに行くのは観客の半分くらいだろうか。
 つまり、サッカーの試合が始まってから、トイレに行く女性は収容人数5万人のうちの4分の1、12500人くらい。ハーフタイム中にトイレに行く人は、さらにその半分で、残りは試合終了後に行くと考えよう。となると、結局、15分間のハーフタイムに、トイレに行く女性は6250人。上記と同じ理屈で考えると、15分の間にひとつのトイレがさばける人数は、10人。とすれば、女性用トイレは625個あればいい計算になる。……しかし、ネットなどの書き込みによれば、国立競技場は慢性的なトイレ不足らしく、その点に関しては評判が悪いようだ。おそらく、実際には女性用トイレはもっと少なく、500個以下ではなかろうか。

 smapのコンサートの際には数百個単位での仮設トイレの設置が必要だったと思われる。普段、男性用としているトイレを女性用に転用しても、ぜんぜん足りないはずだ。ほかに場所はないので、アリーナ席の後ろ、トラック上に設置されたのだろう。300個くらいだろうか。
 コンサートに行った人のブログなどを見ると、コンサートでメンバーのソロの曲が始まると、その人のファンではない客は、ここぞとばかりに、トイレに走ったそうである。トイレはやっぱり、足りなかったのだろう。

 こんなことを考えていくと、仮設トイレのレンタルという商売は、かなり儲かるんじゃないかという気がしてくる。

その他のカテゴリー