2010年2月16日火曜日

昼間の番組のCMは高齢者のためだな。

久しぶりに録画した番組でなくテレビを見た。

CMは大きく分けて3種類。
1.保険
2.健康関連
3.オール電化とリフォーム

あと特徴としては
・普通のCMより喋るスピードが遅い。
・出演している人も同世代。
・通販

訪問販売しているものとも一致するなと思った。

2010年2月15日月曜日

喫煙対策の義務化

今日、テレビをつけたら、喫煙対策を義務化しようとしている。一部の地区ではすでに実施されてるがこれを全国に広げようとしている。
簡単に言えば
・受動喫煙の被害の定量化なんてできない。
・全国に広げたときのコストと利益のトレードオフがある。
・この法で儲かるグループができ、法による需要が生まれる。
・基本的に定量化できない問題を義務化・対策してはいけない。
いうことだ。

まず、受動喫煙者の肺の写真を見たことがあるだろうか?受動喫煙に害があり、そのための規制を作るのなら、この写真があれば大きく世論を動かせる。写真がないから、表にでないのだ。
もともと喫煙者は煙をそのまま吸っている。もしそこから1m離れた距離でたばこの煙を吸ったとしても空気中に分散しているのだから、仮に喫煙者のタバコと同濃度の空間が吐いた煙でできたとしてもせいぜい半径10cm以下。
半径1mは100cmだから、10^3:100^3で、1000分の1だ。もちろん最初の半径10cm以下自体かなり多めに見積もっているから実際には数百万分の1だと思う。もちろん離れれば距離の3乗だけ薄まる。
仮にある程度吸ってたとしてもそれでガンになる可能性がどれほど高まるか定量的に示せるか。示せるわけがない。どれだけ受動喫煙してるか測る指標がないし、同じ条件でたくさんの人を集めれるわけがない。

意味がないのはここまでとして、次にこの政策を実行するコストだ。だれが儲かるか?当然これを取り締まる役人は儲かるし、このための設備を置く企業が儲かる。この問題を研究している教授もうれしい。吸わないひとはなんかうれしい。
取り締まる人と設備の対策として、都道府県当たり年間対策費100億だとしても年間5000億くらいの需要だ。ほとんど効果がないものに国が法を作ることでこのくらいの需要が生まれる。

定量化できないものは、安心だ。僕のなかでは安心は相対的なものだからいつまで立っても満たされることはない。いつも止まる電車に慣れれば動いただけでうれしいし、いつも定刻通りの電車が10分遅れると腹がたつ。
0.00001%でも肺がんになるリスクが喫煙者にもたらされることがゆるせないのだ。それによって税金が増えてかえって損をする。
これが積み重なるから官僚組織(法)はだんだん非効率になるのだと思う。

2010年2月14日日曜日

javascript:絶対値の高速化。切り捨ての高速化。浮動小数点について学習

ついでにjavascriptの数値型について整理する。
javascriptの数値型は、64ビット浮動小数点型である。分解すると、符号部 1 ビット ・ 指数部 11 ビット ・ 仮数部 52 ビットである。
[3]から、
・符号部は0を正、負を1に。
・指数部は符号なしの2進数とし、倍精度の場合は1023をバイアスした値で表す。
(1023をバイアスとは、符号部に実際の符号に指定した数だけ足し、正数で負の数も表現すること)
・仮数部は、整数部分が1であるような小数。
・指数部、仮数部ともに 0 のときは 0 を表す。

[1]にあるx|0結果について考察してみる。
x=-123 → -123
-123をビットで表示すると、
123/2 = 61 .. 1
61/2 = 30 .. 1
30/2 = 15 .. 0
15/2 = 7 .. 1
7/2 = 3 .. 1
3/2 = 1 .. 1
よって、123 → 1,111,011
(128-(4+1)からも想像がつくが。)
・符号部は、マイナスなので1。
・1.11011*2^5
・1023をバイアスするので、5+1023
1023=2^10-1 5 = 2^2+1
10,000,000,000 & 100
だから、仮数部は10,000,000,100。
最終的には、
1 10,000,000,100 1,111,011,0000..
となる。
0は、
0 00,000,000,000 0,000,000,0000..
当然、-123|0は-123となる。

次は、x=9876543210 → 1286608618
9876543210をビット表示すると、
1,001,001,100,101,100,000,001,011,011,101,010
1286608618をビット表示すると、
      1,001,100,101,100,000,001,011,011,101,010
9876543210の指数部は、(1.001...)*2^33から33。
1286608618の指数部は、(1.001...)*2^31から31。

・x|0を行ったとき、仮数部は、31桁しか読んでいない。

次は、x=123.45 → 123
123 は、さっきと同じで2^7-5から、1,111,011
クレバー方式から
0.45*2=0.9
0.9*2=1.8
0.8*2=1.6
0.6*2=1.2
0.2*2=0.4
0.4*2=0.8
よって、途中から1100の周期で、0.011,100,110,011,0011...

ここまできてやっとビット計算と浮動小数点で言いたいことが分かってきた。浮動小数点では、指数部と仮数部に分けているのでそのままビット計算を行うことができない。なので、ビット計算できる整数に置き換えて計算する必要がある。
その時、[1]で書かれているToInt32や、ToUint32(x)によって、ビット計算をできるようにしている。
ToInt32は、32ビットの整数に変換すること。負の場合は32桁目が1になる。
x & y ::= ToInt32(ToInt32(x) [&] ToInt32(y))
x | y ::= ToInt32(ToInt32(x) [|] ToInt32(y))
x ^ y ::= ToInt32(ToInt32(x) [^] ToInt32(y))
~x ::= ToInt32([~]ToInt32(x))

x << y ::= ToInt32(ToInt32(x) [<<] (ToUint32(y) [&] 0x1F))
x >> y ::= ToInt32(ToInt32(x) [>>] (ToUint32(y) [&] 0x1F))
x >>> y ::= ToUint32(ToUint32(x) [>>>] (ToUint32(y) [&] 0x1F))

ここにきてやっと
小数を切り捨てる際に使われる。
x|0
は、ビット計算するときにxをToInt32(x)によって32ビットの整数に変換している。(x|0)自体は処理として数字は変わらないはずだが、ToInt32(x)によって小数を切り捨てている。

絶対値の高速化で使われる
h = (x ^ (x >> 31)) - (x >> 31);
上の式でxを32ビットに変換してもしxが正なら(x>>31)は0で、x^0はxorだからそのままx。で、xが負ならすべて1になり、x ^ (x >> 31)で、1は0になり、0は1になる。また最初の符号部分にあたるところも1になる。つまりマイナス。-(x >> 31)は、最初が0で残りが1のものを足すから、絶対値を計算したことと同じようになる。
もちろんこの絶対値は小数には使えない。

小数の切り捨てと絶対値のビット計算の意味が分からず、浮動小数点も勉強しました。




[1]JavaScriptのビット演算の仕組みを理解する


住宅バブルと国債バブルの類似点

結局バブルは、短期的には儲かる仕組みによって儲かる仕組みが加速することにある。
金融によってバブルが起きたと言っているが、(そのバブルの速度自体は加速したかもしれないが、)簡単に言えば不動産という資産の価値が上がりそれを売って儲かるという仕組みがバブルを生み出している。これは不動産の収入によって不動産価格は決まっているというより短期の不動産の売買する需給関係によって不動産価格は決まっていることから起きる。
では、国債と比べたらなにが違うか。

不動産の購入者 = 銀行
不動産 = 国債(地方債)、企業や政府機関への債権
不動産収入 = 税収、債権収入。

少し複雑なのは国債だけで銀行は儲けているわけではないことにある。企業や政府機関への債権と国債をセットで買うことでバブルを起こしているのだ。
短期的に国債の需給は、将来の税収でなく現在国債が買えるかどうかによって決まっている。また、儲かる仕組みは国債と地方債をセットで買うことで、国債を買ってもらった国(地方自治体)は国債と債権のお金を返す資金が集まる。銀行は債権を返してもらえるのでお金が入ってくる。
この仕組みは最近あったマドフ元ナスダック会長の詐欺事件に似ている。集めたお金で配当を渡していたのでその配当の高さに引かれてまたお金が集まるのでこの仕組みは続く。ただ運用していない(お金による収入が低い)のでだんだん返すお金が減りバレてしまう。直接的な原因は、金融危機によって運用のお金を集めるのが難しくなってバレてしまった。

もう少し具体例をあげれば、自治体が地下鉄を作るのに5000億円のお金がいるとして、それを年3%の金利で銀行から借りるとする。銀行は、地方債140億円(金利0)を買いつづけ、地方自治体は10億円の税収を足すだけで150億円のお金を返すことができる。銀行自体はこれによって毎年10億円のお金が儲かる。ここでは地方債の金利を0にしているが、少し計算方法を変えたら同じことだ。
これを繰り返すと銀行はどうなるか?長期の地方債のポジションが増え、自治体では地方債が増えてくる。
実際、国債や地方債の状況は見てのとおりで、銀行のバランスシートも世界の銀行健全度で93位(2008~2009)になるほど悪化している。

日本は今この銀行による国債バブルのスパイラルのなかにいる。
出口は、サブプライムの問題ではローンの延滞、不動産価格の下落によって問題が明かになったように、この国債バブルの終わりは税収不足、景気刺激不足による企業の債権の延滞、国債の下落(国債金利の上昇)によって終止符をうつだろう。

2010年2月5日金曜日

環境問題について二言。

1.石炭の生産量をどう減らすかが一番の課題。
2.developing worldにお金が流れると石炭の消費量は増える。

ほんとうに環境問題を考えるなら、もっとも消費量を減らす努力をしないといけないのは石炭。下のグラフから分かるようにほとんどが、新興国。
所得とCO2の消費量は完全に相関関係がある。環境に良い(!?)電気より一番安い石炭を使うに違いない。

新興国の施設を環境によいものに変えると逆にCO2は増える。
なぜなら乗数効果が生まれるからだ。
途上国向けにもともと50億の電気のプロジェクトにCO2削減を掲げて30億のお金が先進国から流れると、
単純に30億お金が増えるので消費性向が0.7だと100億くらいの経済効果がある。
国債という負債とセットの経済政策ではないのでまさに乗数効果が当てはまりそうだ!!
仮にもともと30億お金を出すと30%CO2を削減できるプロジェクトで、経済効果の分だけCO2が増えるとすると、なんと50*0.7+100*0.7=だいたい二倍になる。
ほんとにそんな感じでCO2の排出量が増えると思う。30億のうちの10億くらいが海外の工場で作られた先進国のモノだとしても、本当に喜んでいるのは途上国に投資している先進国の投資家くらい。
なんとかしてほしい。


2010年2月3日水曜日

googleが今後注目している4つのこと。

These awards, totaling $5.7 million, cover four areas: machine learning, the use of mobile phones as data collection devices for public health and environment monitoring, energy efficiency in computing, and privacy.

http://googleblog.blogspot.com/2010/02/announcing-googles-focused-research.html

・人工知能
・携帯で公共の環境データを収集する手段
・コンピュータによるエネルギーの効率化
・プライバシー