SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|

2005-03-02(Wed) ケタ違いに便利なメソッドを追加する

  一昨日の電卓ネタにちょっと関連するお話をしてみたい。ここんトコ、NHKがかなりのバッシングを受けており、受信料の未払い騒動にまで発展しているらしい。まぁ、その後の対応が最悪だったとはいえ、会社の金の横領程度のコトはどこの会社でも起こるコトだからして、そんなコトを理由に受信料の支払いをヤメるなんて、どうかしてんじゃないの? ……と、一度として受信料を払ってないオイラがしみじみ思う今日この頃である。えー、よろしければスクランブルをおかけいただいてもけっこうでございますので。

  ニュースによると、受信料収入が約72億円の減収となったので、全職員約1万2千人の給与、ひとり当たり年約23.3万円の減俸を行うコトに決定したらしい。減俸ってーと、なんか職員が悪いコトをしたみたいだが、ほとんど全員の職員がトバッチリなんだよな。気の毒だ。それはそうと、この減俸によって減収のどの程度が賄われるのだろうか。そこまで記事に書いてないので、計算してみるコトにした。

p 233000 * 12000
2796000000

  ちゅーか、ゼロが多すぎてワカラン。そうなのだ、今日の日記のテーマは「位取り」なのである。そもそも、デカい金額は8桁しかない電卓では計算できない。位取りくらい人間がやればイイという意見もあろうが、もしそこを間違えた場合はとっても丸紅なのである。やっぱり機械にやらせるのが一番だ。

  ところが、C言語なんかだと素直に32bitで表現できるのは、43億チョイに過ぎない。フツーは負数も考慮するから、21億。上記の28億という数字はヒト筋縄には扱えないのである。そんじゃ、物理的な桁制限のないRubyを使えばイイじゃないか、という意見もあろうが27960000などと表示されても困るのである。そらみろ、んなコトいってるソバからゼロがふたつも抜けてしまったではないか。

  んじゃ、どうするか。Rubyじゃダメだと言った矢先ではあるが、やっぱりリングの王者はRubyなのである。Integerクラスにドドーンとこのようなアホなメソッド群を追加してしまうのだ。するとなんと!! こんな式が書けるようになってしまう。

p (23.man + 3.sen).kakeru(1.man + 2.sen).wa?
"27.oku 9600.man 0000"

  わぉ。わかりやすい。記述にも無理がない(ホントか?)。メソッド名があまりにベタで、しかも「wa?」に至ってはたぶんコード標準に違反してしまっているし、コードの59行目に至ってはギャグタッチでさえあるが、便利なコトに変わりないだろう。調子に乗って、わが国の今年の見込み税収額の44兆0410億円を、総人口の1億2761万9千人で割って、国民ひとり当たりの税額を求めてみる。フツーならこんな感じに計算せねばならんが、

p 44041000000000 / 127619000
345097

  上記のクラスを使うコトで、

p (44.cyo + 410.oku).waru(1.oku + 2761.man + 9.sen).wa?
"34.man 5097"

  このように、非常に明快に記述できる。

  画像の説明

  まぁ、このよーにデカい数字を日常的にガリガリ使うヒトがどれだけいるかはともかく、電卓に「単位ボタン」を装備するのも悪くないアイデアだと思う。「万ボタン」「億ボタン」「兆ボタン」の3つを設けてもいいし「単位ボタン」のひとつでもいいだろう。入力時に単位ボタンを押すと位がヒトツ上がるのだ。ちなみにこの「単位ボタン」は桁のカンマ区切りの数の変更キーとしても作用するようにしてしまおう。

  ちなみに、3桁ごとにカンマを打つなどという南蛮かぶれな風習は今日を持って廃止し、今後はカンマ区切りは4桁を基本としていただくのでそのつもりで。3桁区切りなんぞ生粋の日本男児にとってまったく意味不明千万な風習である。よって「単位ボタン」は「しょうがねぇ、4桁ごとのカンマを3桁ごとに変更してやるよ」ボタンとさせていただく。日本人よ妥協するな!! 外国人に道を聞かれたら、堂々と日本語で答えるのだ!! あナたは神ウォを信じまシュか?

  あ、そうそう。その後の調光器であるが、テスターでボリュームを調べたところ、0Ωが出るし220kΩまでしか出ない仕様だったものの、抵抗値変化のカーブ特性は直線、つまりBカーブに間違いなかった。するとなんだ? 明るさが変わるからトライアックは問題なさそうだ。するとフィルムコンデンサかダイアックかというトコロか? そもそも回路が間違っている可能性もあるが……。せっかくだから先日アプリを完成したのに、その後一度も使っていないOsziFOXを当ててみるかなぁ。