今日はドイツからイギリスへ金融のことを学びました。イギリスには大きな金融市場があってそこで世界中のお金が動い回っています。どういうことかというと、企業や銀行、政府、個人、様々なお客さんが金利や価値の上昇による売買益を得るために投資をしているのです。普段はアルバイトして時給計算で生きているので想像が難しいのですが、秒単位で果てしない数の取引が行われ、新たなお金が生まれているのです。みんなお金が欲しいわけですから儲けようとトレーダーの人が株価の値動きと睨めっこをして今かというタイミングで購入ボタンを押し、それをやりくりするのです。2008年のリーマンショックはこの投資と金融市場のリスクが多くても余裕で返せるからなんとかなるっしょ精神が引き起こした金融危機です。これによりリーマンブラザーズが破綻し銀行や企業がお金を貸すのをやめ、経済が回らなくなり、国民も巻き込んだ大惨事となったのです。いかに金融市場が経済の命運を握っているのかがわかります。
今日はsqlをやりました。sqlはデータベースを扱うプログラミング言語で、データを取り出したり、書き換えて保存したり、順番を変えて表示させたり、そのデータを元に統計を作ったりと色々できます。リレーショナルデータベースを主に扱う言語なのですが、これはテーブルでデータを分けてカラムとレコードでデータを保存する方法でこれが一般的となっています。このテーブル同士を紐づけて違うテーブルに書いてあるカラムの内容でグループを作りその合計や平均を出したりできます。SELECTで表示させるデータを記述し、JOIN, ONでテーブルを紐付けさせ、WHEREでカラムの絞り込みを行い、GROUP BYでグループに分けてデータを扱い、他にcount, sum, avgと言った関数を使います。グループ化したデータの絞り込みをする場合はWHEREではなく、HAVINGを使うことも学びました。DISTINCTで重複するデータを除いたカラムのデータを表示させ、ORDER BYでデータの順番を変え、LIMITで表示させるデータの数を制限します。
プログラミングのしくみでは二進数を学びました。二進数から10進数に変えるやり方はいつも忘れるのですが、10進数が10をかけて桁を繰り上げる方式、つまり基数が10なのに対し、2進数は基数を2とする数え方です。なので桁が繰り上がるたびに倍になっていくと考えることができ、2進数から10進数に変えるにはその桁ごとの2進数に2のn-1乗をかけて各々を足せば10進数になります。コンピュータは2進数で全部のやりとりをするのですが、なぜ二進数を採用しているかというと、電気を流してそれがonとoffなのかで判断するからです。このオンとオフでこれだけ多様なものを表現できているのは意味がわからないですよね。今日一番面白かったところは補数という概念です。補数とは例えば8ビットのデータを扱う演算だとして、00000001の歩数が11111111となります。要するに足して0になる値が補数になるわけで、コンピュータではマイナスを表すのに補数を使います。1 + (-1) = 0 はコンピュータ内では00000001 + 11111111 = 0となるのです。ここでおもしろポイントがコンピュータでは繰り上げの1は無視するというところです。本当ならこの計算では100000000となるはずですが扱うデータを8ビットとしているので桁が繰り上がって外に漏れることになるのですが、これをコンピュータは無視するのです。