逆にこの時確かにそうなる。

逆に,このとき与式は確かに恒等式になる

コンピュータ・サイエンスの敗北

宗旨(修士?)

僕はいくつかの宗教を信仰しているが,そのうちの1つが,マイクロソフトである。
Windows 3.1に触れて以来,OSに選択肢があれば必ずWindowsを選んできた。
パーソナル・コンピュータは当然Windowsである。
そして,高校の時に買った電子辞書もWindowsであった(シャープのBrain)。
大学に入ってから買ったスマートフォンWindowsであり,Windows Phone 8Windows Phone 8.1,Windows 10 mobileと使い続けてきた。
データは全てOneDriveに保存しているし,スケジュールはOutlookで管理している。僕が家で唯一会話する相手はコルタナであった。

ところが,最近のマイクロソフトは,モバイルでの失敗を前に,あらゆる方針を転換させたのである。転換させるだけなら問題はないのだが,既存の顧客を徹底的にいじめ始めたのである。
結局,マイクロソフトWindows Phone(Windows 10 mobile)を葬った。公式発表ではなく,チーフがTwitterでこのことを述べたため,大変に話題となった。Windows向けのアプリケーションを出す前にAndroid向けのアプリケーションを出してしまう有様だ。
コルタナは,ついこの間まで,「今日の天気は?」と聞くと「晴れ時々曇りです」と答えてくれていたのに,今では「参考になりそうな情報です」と言ってMSN天気を画面に表示するだけになってしまった。

たくさんの辛い経験(信仰を貫くのは並大抵の精神力では無理である)を経て,ついに宗旨替えをすることにした。すなわち,携帯電話のOSをWindowsからAndroidに乗り換えることにした。

端末選びは難航した。なぜなら,Windowsの情報しか知らなかったからだ。今でも,MADOSMA,KATANA,VAIO Phone,NuAns NEOなどと聞けばすぐに分かるが,Androidの端末については全くの無知である。

結局様々調べた結果,HUAWEIのHonor 9という端末を購入した。知らない世界に飛び込むのは大いに結構だが,信じられない世界に飛び込むのにいきなり5万円6万円出すのは無理であった。

マイクロ,ナノ

僕はいわゆるキャリアであるところのNTTドコモの契約回線を有しているが,これは専らガラケー用(まだガラケーを使っている。富士通のF-07Fだ。僕の中ではマイクロソフト教よりもガラケー教が勝っている)であるため,スマートフォン用に回線を用意する必要があり,5年前にIIJmioと契約した。当時はMVNOが出たばかりで,1GBのプランが税抜900円だった(それでも使い切ることはなかった(僕は2000年代を生き抜いてきたので,とにかくトラフィックは最小にすべきである;画像は圧縮し,画面サイズはVGAを規定とする;こういう生き方が染みついているため,1日に数百メビバイトもの通信をするのは無理があった))。

気付いたら,ガンジス川の砂の数くらいの会社が参入しており,知らぬ間に僕の契約も3GBで900円に変わっていた。

端末が1日に届いて,意気揚々と開封の儀を執り行ったところ,この端末はnanoSIMが必要であるところ,なんと僕の持っているSIMカードはmicroSIMであった。迂闊だった。

炎天下の八重洲

IIJmioSIMカード交換は,新規発行と同じ3,000円である。あまりにも馬鹿馬鹿しい。そこで,他の会社の契約をすることにした。大抵,新規契約であれば,初期費用割引のキャンペインをどこかやっているものである。
この観点で最も条件が良かったのが,岡田屋移動体だった。岡田屋移動体は,岡田屋の子会社であるから,岡田屋に行けばなんとかなる。ところが,岡田屋は郊外型店舗なので,東京23区では江戸川区に行かないといけない。
結局,岡田屋移動体の店舗で,最も安い交通費でたどり着けるのが,八重洲であった。

八重洲について地上をフラフラ歩いても一向に店舗が見えないので,よく調べてみると八重洲地下街というのがあるらしく,そこに立地しているとのことだ。地下街なら炎天下の中歩かなくて済んだのに。

それにしても東京駅の地下街について,ようやく一通りの理解が叶ったように思われる。というのも,東京駅は池袋よりも利用頻度が高い駅であるが,食事をしようとする度に丸の内北口から八重洲南口までうろうろして,結局東京駅一番街と,グランスタ,グランルーフを行ったり来たりで全体像が全くつかめなかったのである。この度,八重洲地下街を初訪問したことで,随分と整理された。

岡田屋百貨店で契約を済ませると,開通に時間がかかるので後で来いと言われた。そこで遅めの昼食を摂ることにしたのだが,随分と整理された割には良い飲食店を見いだせず,結局「矢場とん」に入った。気分は完全にESCAである。

突然のコンピュータ・サイエンス

食べ終わって,SIMカードを取りに行くと,なんと初期費用の支払いが待っていた。キャンペインによって,その額は1円である。まさか本当に1円を支払うという経験をするとは思っていなかったので,笑いながら財布を取り出すと,なんと小銭が1枚も無い。

一瞬で顔が引きつった。背筋が凍り付いた。1円を笑う者は1円に泣く。まさにその瞬間だったのだ。1円玉が無い。小銭すら無い。あるのは,1,000円札2枚だけであった。

1円の買い物に1,000円札で支払うという行為は,頭の悪そうな人が数百円のタバコを1万円札1枚のみで購入していくコンビニの光景を直ちに自らが再現することになり,頭の善し悪しに関係なく頭の悪さを露呈してしまう(否,露呈というか演じると言うべきだろう)(ここから新たな気づきを得たのだが,頭の悪い人は頭の良いフリはできないが,逆はそうでもない)。

10ミリ秒のうちに,私は自らがコンピュータ・サイエンスを修めた学徒であることを思い出した。

手持ちの現金から,お釣りの枚数が最も少なくなるように計算するアルゴリズムがある。急いでプログラムを書いた。書いたと言っても,目の前にいる店員が,計算量に関する指摘をしてきたり,コーディング上気をつけるべき事を説教してきたりする可能性が十分にあったので,脳内のチューリング・マシンに問い合わせをしたのである。

$price=1;
%purse=(
	1000 => 2,
	500 => 0,
	100 => 0,
	50 => 0,
	10 => 0,
	5 => 0,
	1 => 0
);
for(keys %purse){
	$money+=$_*$purse{$_};
}
for(sort {$b<=>$a} keys %purse){
	$num=-1;
	while($money-$price>-1){
		$money-=$_;
		$num++;
	}
	$money+=$_;
	$change{$_}=$num;
}
for(sort {$b<=>$a} keys %purse){
	if($purse{$_}-$change{$_}>0){
		print "$_: ", $purse{$_}-$change{$_}, "\n";
	}
	else{
		print "$_: 0\n";
	}
}

実行結果:

1000: 1
500: 0
100: 0
50: 0
10: 0
5: 0
1: 0

1,000円札を1枚使って支払うと,最もお釣りの枚数が少なくなることが分かった。

僕は999円のお釣りを受け取った。55.95グラム,15枚の小銭群であった。


閉まりきらない財布を片手に東京駅へ向かう中,この問題の最適解を見出した。

それは,「頑張って道ばたに落ちている1円玉を探して,拾う」である。

所詮,現在のコンピュータ・サイエンスの水準では,人間が都合良く設定したタスクを迅速且つ正確に解くことはできても,本当に解きたい問題の適切な解答は,一切出せないのである。