2016-04-21娘が女になるということ下の子(女の子)が、この春から小4になった。子供なんだけど、このあいだ会話していて、こりゃぁもう女やなぁと思ったことがあり。散歩がてら、ちょっと離れた公園に行く道すがら僕「最近、学校はどうなの」娘「○○先生(担任)がマジキモくてさぁ、このあいだね......(おっさん上司の愚痴。娘「でも△△先生(別のクラスの担任)が、体育で男子とサッカーしてるのとかは、超カッコ良くってぇ〜〜......(隣の芝生が青く見える話。詳細を聞く必要はない)」僕「あの人は若いからねぇ、キラキラしてるよね、友達はどう?」娘「xxちゃんがyyくんのこと好きなの、zzちゃんは知ってるのにyyに告白しようかな、とか言ってるんだよ、マジでウザくない?てか、マジでね......(同僚女子の悪口と恋愛話。娘「しかもね、××って男子が、最近変なちょっかいかけて来て超ウザくって......(同僚男子の悪口。娘「てゆーか、宿題多すぎてマジで死ぬわ(仕事の愚痴。娘「そういえば、この靴おばぁちゃんが買ってくれたんだよ!(ファッションの話。娘「何か楽しいことないかなぁ(提案しろ!)」僕「じゃぁ、今度、河原で凧揚げでもしようか(ワクワク感の醸成。途中で、コンビニに寄る僕(ビール♪ビール♪)娘(お菓子の棚の前でじっと凝視。お店では常に自分の興味のあるものしか見えない。手に入らないと分かっていても、とにかく見る)僕(ビールと一緒に、こっそりガリガリ君を買っておく)コンビニを出る僕(ビールをプシュッとしながら、コンビニの袋ごとガリガリ君を渡す)娘(ガサゴソ。(゚∀゚)キタコレ!!)娘「何これいつのまに買ったのちょー嬉しい!お父さん大好き!!(結論:食べ物で釣れ)」こちらからは以上になります。小室友里先生が「3回のデートでベッドインするテクニック」を手取り足取り教えてくれるようです。2015-01-22素数の無限ストリームをScalaで最近、Scalaを勉強しようと思い立った。Eulerを解く素数の無限列が欲しくなるどうするんだっけ?SICPを読むというルーチンが人生で何回目かに起こったので、ブログに自分の言葉で書いておこう。Delightという本を買いました。Kindle版この商品を含むブログを見るこの本の2章は、Basicsというタイトルで、ビット演算について、基本的な性質や関係式が述べられているのですが、この本は前文にあるとおり、証明は書かないので、慣れてないと読むのに苦労しますというか、しました。2014の12/23分の記事とさせていただきます。以下、このエントリでは、8bitの符号付き/無し整数を考えます。整数を10進表記する際には日常通りに表記し、2進表記する際には、01010101bのように、最後にbを置きます。2の補数表現コンピュータの中では、符号付きの整数は、少し変わった方法で表現されます。普通に考えれば、+/-の表現に1bitを使い、残りの7bitで絶対値を表現すれば良いように思います。11111101bと、11111111bを-1として、後ろから順番に値が割当てられていて、これは2の補数表現と呼ばれています。これは何故かと言うと、引き算が足し算で出来るというご利益があるので、こうなっています。何を言っているのか分からないと思うので、詳しく説明します。唐突ですが、xy平面上の単位円周を想像して下さい。点P0を(0,1)として、点P1から順に点P255までが、単位円周上に等間隔に並んでいるとします。...点P255には11111111が割当てられているとします。点254が-2と、1ずつ値が減少していきます。右回りと左回りのカウントアップ/ダウンは、0のちょうど反対側、10000000が割当てられている点P128でぶつかるのですが、この点は128ではなくて、-128と解釈することになっています。すれば、先頭bitの0/1で値の正/負を判断出来るからです。0の場合が有るので、正確には正or0/負の判断ですが。このように値が表現されているのが、整数型の変数の値がオーバーフローした時に、絶対値の大きい負の値が出てくる理由です。3は、点P3(00000011)に割当てられています。ここから1引いた値を知りたければ、単位円周上を、左回りに1目盛だけ進めば良いです。今、円周を考えているので、1目盛左回り進む事は、255目盛右回りに進む事と同じです。点P3から円周上を255目盛進んだ場所とは、点P3のbit列00000011に点P255のbit列11111111を2進数として足し算して、桁あふれを無視すれば得られます。これが、引き算が足し算で出来るという意味です。-1をする事の、bit演算としての意味を考えてみます。01010111bという整数に00000001bを足すと、01011000bになります。これは「右に詰まった1を0に反転し、最右の0を1に反転」という操作です。逆に、-1は「右に詰まった0を1に反転し、最右の1を0に反転」という操作になります。論理否定の意味ここでは、全てのbitを反転する操作の意味を考えてみます。2の補数表現の所で出てきた単位円を思い出します。点P0と点255の中点を点N1として、点N1と原点を結ぶ直線をnと呼ぶことにします。直線nは、y軸をちょっとだけ(目盛半分だけ)左に傾けた直線です。論理否定は、直線nに関する線対称移動です。これを今から数学的帰納法のような議論で示します。点P0(00000000b)と点P255(11111111b)は、bit列としては反転しており、かつ、直線nに関して線対称の位置に有ります。次に、直線nの右側の点X、点Xと直線nに関して線対称な位置にある点Yについて、それらに割当てられたbit列が反転していると仮定します。-1の操作の意味を考えると分かります。-1倍の意味-1倍は、シンプルにy軸での反転です。これは、殆ど自明だと思います。1の意味2.2節には、上のような等式が出てきます。最初見たとき、全く意味が分からなかったのですが、上の単位円周をイメージしたら理解出来ました。右辺は、直線nで反転した後、1目盛分の回転を意味していて、これらが等しいと言っています。全て線形変換なので、行列を比較すれば良いです。面倒臭いので、Rで確認します。2.220446e-161個の式の説明だけでダラダラと書いてしまいましたが、他にも色々な関係式が載っていて勉強になります。2014-11-26C++でコマンドライン引数のパースc++ヘッダ1つで使えるezOptionParserというのをこのあいだ使ったので、自分が使いそうな機能だけ抜き出して、メモ。ヘッダ1つで使えるのは便利だ。C++のLoggerc++ヘッダ1つで使えるeasyloggingppというのをこのあいだ使ったので、自分が使いそうな機能だけ抜き出して、メモ。社内で統計検定2級の勉強会の講師を頼まれたので、指定テキストの4.4-4.7節の解説を作成した。あと、その場で、例として出てくる推定量の分布をシミュレーションするRコードを書いた。gistに晒しておく。誰かの役に立てば幸いです。programelispgcjscribdfinancecodeforcescodefocesprogramingページビュー204833。