永遠のビギナーのブログ -24ページ目

経済アナリストはバカの別称なのか?

ずいぶん刺激的なタイトルをつけましたが、経済アナリストはその職業の名誉のために彼を経済アナリストと認めない方がいいかと思います。職業団体があるのかは知りませんが。あと、兼任講師の意味がよく分からないのだけれど、これは非常勤講師のことか?

そういうわけで今日はここの記事 。移民問題についてはお蔵入りしていたものにあったのだけれど、ちょうど間抜けさんを見つけたので反論する形に構成を変えて書いておく。しかし、J-castには城さんという労働者問題で専門として活躍している方がいるのに、もう少しまともなことが書けないのだろうか。世に出す前に添削してもらった方がいいですよ、小田切さん。

まず初めに、「圧倒的な量の差は質を変える」と言うことを前提としておく。コンピュータの世界で言えばギガバイトとペタバイト(差は100万倍)のデータサイズの違いはデータに対するアプローチから変えていく必要がある。企業だと1000万負債の企業と10兆負債の企業と銀行だと力関係で10兆負債の企業の方が銀行より強かったりする。1000人程度のお雇い外国人と100万人の移民では発生する問題も解決する問題も質的に異なるはずだ。

だいたい、移民問題で反対の人も優れた外国人から何かを学ぶために来てもらうのに反対する人は多くなかろう。そこまで日本人が狭量であるとは私には思えない。だから文中の「才能ある移民を受け入れる」(以降、「」内引用)というのはミスリードを誘う文か、問題に対する誤読だ。そもそもの初めは「100万人ほどの労働力が毎年減っている計算」なので「20代の若くて元気な労働力が増えること」の対処方法としての移民なのだから。まさか何かを学ぶために100万人単位で外国の人に来てもらうわけではなかろう。自分で書いているように労働力として来てもらう話で。だからこの文中では、(どちらも外国から人を呼んでくる話なのだけれど)100万人単位で労働者を呼んでくることのみを移民と呼ぶ。

筆者の主張は
1)人口動態の変化で既存の社会システムが崩壊し、国の活力も失われる。
2)即効性がある解決策は移民政策しかなく、これを拒否すれば社会システムは崩壊し、活力は失われる。
だと思う。文章の最後の段は馬鹿馬鹿しいので無視したいのであるがそれも無責任なので、なぜその部分がバカなのかは後述する。

1)についてはおおまかには異論はない。問題は2)だ。まずは移民政策はそれだけでは解決策ではなく多分問題の先送りに過ぎないことを示そうと思う。要するにいままで数値をいじってごまかしてきた厚生官僚がごまかしきれなくなり、人間を部品としか見ない経団連(の一部と信じたい)がそれに乗っかった話だ。

既存の年金システムは長周期のネズミ講であることは昔に少し触れた(別記事 )。そのときは明白なので別段いちいち記述することは必要ないと思っていたし、その記事は別の主眼があったのであまり触れないでいたが、どうもご立派な方が理解していないようなので詳しく説明しようと思う。一応小学生の算数ができればOK。

さて、今仮に2.5人の労働者で1人の年金受給者を支えるものと仮定する。このままだと人口動態の変化で1世代後には1.25人の労働者で1人の年金受給者を支える事になるという仮定もおく。さて移民政策によってこれを2.5人に変えることができたとしよう。素晴らしいと思うだろうか?あなたはだまされているか、持続可能というものを考慮に入れていない。

移民政策でこうなったと言うことは、労働者人口が倍になったと言うことを意味している。さてこの倍になった労働者人口が年金受給対象になったときに何が起きるだろうか。人間は残念ながら死ぬのでこのまま倍にはならない。仮に2.5人の労働者は年金受給対象になったときに2人になっているとしよう(多分これはかなり年齢が上がってから年金受給者になることを意味する。おそらくは今の現実よりも)。つまり次の世代は2人を支えるために5人の労働者が必要になる。その次の世代の労働者人口はさらに倍だ。世代を重ねるごとに必要な労働者人口は倍になる。ちなみにこのようなものをちまたではネズミ講と呼ぶ。お金でこれをやると犯罪だ。単純に世代で人口が倍になるとすれば、1世代約30年として、2050年に人口2億4000万、2080年に人口4億8000万。さてこれは維持可能なのか?

ちゃんちゃらおかしい。要するに既存の年金システムは本質的におかしいために維持できないだけだ。少子高齢化はその破綻を早めただけに過ぎない。やらなければいけないことは既存のシステムの変更であって移民政策ではない。

次に、一応これを回避する小手先を仕込むことはできる事を示す。ただし(今のところは)非現実的、か極悪非道のどちらかになる。要するに回避策は
あ)年金受給対象は増加しないようにするか、
い)世代で世代を支えるか、
この2つだ。

後者は移民政策とは無関係に成立する。労働者人口から集めたお金(物価または賃金にスライドするにしても一人あたりの負担は基本的に変わらない。)で年金受給者世代に分配する。この場合、労働者人口が減ればその分年金受給者1人の年金額は減る。世代間の相互扶助というのが賦課方式の本質であるならばこちらが本筋だろう。しかしこれは人口の多い世代が損をする方式であるから、おそらく成立することは難しいだろう。

前者はなかなか鬼畜な方法で実現できる。要するにシンガポールみたいに金のない、稼がなくなった外国人は追い出すのだ。これはシンガポールは比較的高給取りの外国人を呼び込んでいるから許されている話で、介護職で安く使って年金を払わせて、年をとったら『はい、さようなら』では人間としてどうかしていると思う。普通の日本人は『こんな事は許されない』と考えると私は思う。こんな事を理解した上で現実的方策として打ち出せるのは、無責任な経営者と自分の任期さえ問題が起きなければ後はどうでも良い官僚ぐらいだろう。

さて、おわかりいただけたであろうか。要するに
a)移民政策でも既存の年金システムは崩壊するし、
b)それを避けるには、少なくとも現時点では非現実的な政策を打ち出すか、鬼畜な政策を打ち出すかで、
c)鬼畜な政策は来ていただいた外国の方に失礼極まりない
と言うことである。

100年安心の政策を謳うのであれば、100年の持続可能性を考慮すべきであろうし、100年先の不確実性を免罪符にするより、ネズミ講の確実な破綻を考えるべきである。つまり、特殊出生率がどうこうより、べき乗はあっさり発散するという小学生でも知っている数学的事実を考えに入れておきなさい、ということだ。

さて、憂鬱な最終段の話だ。今の若者の競争率は楽ちんだという、全く持って頭の不自由な人が数値をいじって書いたとしか思えない文章なのだが一言で言うと、『22歳には高卒もいれば大卒もいるよね』で終わる。何を持って22歳の人口と大卒相当の求人を比較しているのかわけが分からない。22歳の大卒の人口と比較すべきだよね。求人に関するデータはリクルートの数字を使用したそうだが、多分これ(注:pdfファイル) だ。ここにはちゃんと大卒の人口と求人倍率も出ているのにわざわざ人口は総務省統計局の数値を使って誤った印象を演出して、Webなのに引用先も示さないなんて自分が数値の都合のいいとこ取りをしたのがばれるからじゃないかと思うのはゲスの勘ぐりですかね。ちょうど1995年から2005年が谷で両脇に山があるしね。嘘は言っていないけれど、多分誠実な人ではないよね。

さて、ではまとめだ。
1)人口動態の変化で既存の社会システムが早期に崩壊し、国の活力も失われる。
2)移民政策はこれを先送りするだけであり、解決策ではない。
3)ヘタに移民政策を行うと、我が国にも来ていただいた方にも不幸をもたらす。
4)移民政策は(行うなら)既存の社会システムを壊し、持続可能なように再構築してから行うべきである。
5)経済アナリストって何をアナライズするの?小学生の算数も比較もまともにできない人が何でいるのか不明。


古くさい迷惑メールがまた復活?

先日、メールアドレス変更通知のメールが来た。しかしその元アドレスに心当たりはない。数年使用していないメールアドレスは(クラウド上にあるが)携帯に反映しない仕組みにしているので、それかと思いPCで確認するもどうも該当するアドレスはない。

そうなると業者のトラップか、はたまた何らかの間違い(何らかの事情でアドレスを手で移すと発生しやすい)だと思うのだがこちらでは確認しようもない。そういうわけであまり気が進まないけれど「誰?」と返信する。一日遅れほどで「え、○○くんじゃないの」の返信が来る。ここで○○はカタカナだ。ほぼ業者確定。基本的に業者は○○にカタカナを使う。たとえばタカシ(これは単なる参考例)と書く。隆、孝史、隆史、貴史、全てタカシと読めるが実際にタカシと読める名前の人にはカタカナであれば全て当てはまるので、(自分の名前を呼んでくれるという)親近感がわく心理的効果をできるだけ多くの人をターゲットに狙ったものであろう(実際には分かる人には”ほぼ業者”と判定されるのだが)。同じ理由で名字も書かない。常識のある人であれば自分が間違った可能性がある時点で確認のために先方の名字くらいはつけるだろう。仮に名字を知らない知り合ったばかりの人であっても「いついつどこそこで会ったXX」という自己紹介ぐらいはつけると思う。まあ、余計な情報は親近感を低下させるから、こんな事は分かっていても業者はつけないと思うが。

とりあえず、ここは丁重に間違いであり、ご連絡を辞退する旨をメールする。しばらくしたらまた送って来やがった。頭に来たので先方のアドレスが○○@docomo.co.jpであるのでドコモに通報しようと思ったが、ふと気がつく。先方とやりとりができている(ように見える)が本当のところはまだ曖昧だ。とりあえずヘッダーを確認しようと思うがiPhoneからはどうもできないくさい。iPhoneは[Mysoftbank]-[迷惑メール対策設定]-[Eメールヘッダーの確認]で48時間前のメールは確認できるらしい。この(ソフトバンクが切り取った)ヘッダーが何処まで信用できるかはともかくとして、とりあえず確認するもどうもおかしなところはなさそう。(なりすましを蹴っているので)Fromがdocomoで特にReply-To:の設定もみあたらない(見るまではFromに実在アドレスを使って詐称して、Reply-Toで別のサーバでやりとりをしているのかと想像していたのだが)。

これを信じる限り、本当にドコモ端末から送信されているようだ。そうすると以前の送信制限はどうなったのであろうか。短時間に大量のメール送信を行う端末はメール送信に制限がかかるはずだと思ったが。この間も書いた(別記事:有用性の裏面 )が、業者は短時間に大量のメールを出すことで利益を上げるものだ。それともピンポイントでこちらに業者が送信しているのだろうか。ピンポイントで狙われる心当たりはないのだが。

仮にピンポイントでないとして、この業者の狙いは何であろうか。メールアドレスは(どこかのアドレス業者から)買ったものであろう。おそらく(この段階では)個別対応などしないと思うから一律にメールを送って(仮想的な)友人関係を装ったとしよう。問題はその先だ。

1)どこぞのサーバーにアクセスさせる。
2)メールのやりとりで個人情報を収集して転売。
3)その個人情報を元にして振り込み詐欺へ利用。

このくらいだろうか。

1)はしばらく先のタイミングでURL付きのメールを送ってアクセスさせる。スマートフォンにセキュリティ上の穴があればトロイの木馬でも何でもdropできる。またはそのアドレスが1クリ詐欺でIMEIでも表示して振り込み要求するか(この場合は通常は無視してOK)。

2)は一番手間がかかって且つ儲からない。だからこれはないかな。

3)は場合によっては一番深刻なことになる。集めた個人情報で実家とかに振り込み詐欺をされると対処は難しいだろう(何しろ正しいのだから)。ただそれなりに時間と手間もかかるから可能性としては低いと想像する。

これは一般的な原則だが、わけの分からない人とメールのやりとりはしないことだ。無論全てが犯罪者というわけでもないので、リスクを理解した上で(大人が)やるのならば特に止めはしない。しかし実際にやるのは、たいてい理解をしていない人だと思う。特に未成年は絶対にやらないように。

まとめ
1:昔ながらの(ケータイを使った)迷惑メールが復活しているかもしれない。
2:(送信規制が生きていると仮定して)業者は以前とは別の稼ぎ方を見つけたようだ。
3:わけの分からないネット上でのみの知り合いとのつきあい方は慎重にした方がいい(特に”メールのみ”なんて)。
4:(Softbank版)iPhoneの迷惑メール対策の設定は[Mysoftbank]-[迷惑メール対策設定]でどうぞ。

2012.2.14追記
結果は1)だった。そのアドレスにはアクセスしていないので具体的には不明。whoisで検索するとそのドメインの所有者はGMO Internet Inc.で一部上場企業だ。ドメインの所有者とこの迷惑メール送信業者の関係は不明。と思ったら代行住所サービス(そんなのがあるとは知らなかった。いくらでも悪用されそうですね。)なんてのをやっている会社らしい。会社名+評判でググると楽しそうですね。

10億までの素数、再び

大昔に、古いハード上で10億までの素数を出力してみた(元記事 )。もう2年近く前になる。ちょっと時間があったので新しい(といっても一年半ほど前に購入したものだが)PC上でやってみようかと。ついでに並列化もしてみたいし。

そういうわけで以前のソースを探したのだが何処にもない。サーバーにしていたPCはHDDが潰れてダメになったし、バックアップは一年以上放置していたので「もう必要なものは抜いた」と言うことで破棄したからだ。そういうわけで一からやり直し。従ってソースコードは互換性はあるはずだが必ずしも前回と一致しないかもしれない(というか、多分しない)。

環境:
Windows7 x64 Ultimate
VS2010 Pro
RAM 24G
CPU Core i7 960

とりあえずちょこちょこ作成する。GUIをつけたのでそこに時間がかかる。CUIにしておけば良かった。とりあえず100,1000辺りで実行してみて問題なさそう。で、10億で実行してみると「メモリが不足しています」と通知が。どうやらヒープ領域が不足したらしい。並列化を考慮して最終データをstd::listで持った所為だろうか。ヒープ領域を増やすとコンパイルされなくなった。どうも設定値がx86の制限に引っかかったらしい。面倒くさいのでx64でコンパイルすることにした。

無事コンパイルされて実行。結果は2:47ぐらい。おお、ITProの結果とほぼ同じ。計算にかかる時間は…と調べてみると0:23!?何かも間違いかと思い再確認。どうも間違いないっぽい。であれば出力に2分以上かかっていることになる……。出力先をSSDにしようが、RAMディスクにしようがかかる時間は変わらないのでどうやら出力ルーチンが死ぬほど遅いらしい。ofstreamを使用したのだがこれが間違いだったか。調べてみたら別のところでstdioと3倍ぐらい違う結果があったからITProの結果と倍以上違ってもおかしくはないか。とは言えIO以外の計算時間が4倍違うのはなぜだろうか。x64プログラム化したからか、ネイティブコードだからか。ITProの場合とアルゴリズムに大きな違いがあるとは思えないので、おそらく後者だろう。ofstreamの改善はsync_with_stdioをfalseにしても変化は誤差程度だったから、stdioを使用するようにしないとこれ以上は望めないだろう。

とりあえず計算にかかる時間が23秒程度なので並列化してもそれほどおもしろくはなさそう。そういうわけでこの件は当面クローズ。スレッドではなくコンパイラによる自動並列化は時間があったときにやっても良いかもしれない。念のためソースコードをサーバーにあげる。

それにしても、今となってはofstreamの存在価値が分からなくなった。型を気にしないだけなら今ではスクリプト言語で入出力を書いて計算部分はCなりC++で書いたプログラムに投げれば良いし。まあ、STLが便利だからC++使っているけれど。

まとめ:
1)Pen4-x86プログラムとCore i7-x64プログラムではコアあたりの計算速度は100倍ぐらい違う場合がある。
2)(iTProの記事と比較すると)x64ネイティブコードと(多分x86).Net Frameworkでは4倍ぐらい速度が違うらしい。
3)ofstreamは死ぬほど遅いので使用しない方がいい。