No Such Blog or Diary

«Prev || 1 | 2 | 3 |...| 1145 | 1146 | 1147 || Next»

雪~

雪が降ったて多少積もったことはなんとなくうれしく感じるのだけど,研究室で徹夜してるときに降らなくてもいいじゃないか.自転車は濡れるわ,手は冷たいわ,立ちこぎで家につくころには腰が痛いわ... まあ,これらは自転車に乗らなければ良かったのだけど.

でも雪の上を走るのはすべるので面白い.

グリチャレプログラムの改良

とりあえず予選を通過できたグリチャレであるが,予選通過時のプログラムは少々お馬鹿で一問解くたびにプロセスを立ち上げ直さねばならなかった.そのせいで,問題を解くのに用いた時間よりプロセス立ち上げとコネクションの確立の時間のほうが長いというあほな状況に.そこで,一度プロセスを立ち上げてコネクションを確立したら,それを使いまわせるようにプログラムを書き直してみた.

結果として今日半日分の時間を(主にデバッグに)かけ,結果としてちゃんと動くプログラムが出来上がった.ほとんどのバグは同期に関連していて,スレッド間のロックが一番面倒で何度かデッドロック(というかロックのかけっぱなし)をやってしまった.こんなことをやっていると誰でもが簡単に正しい並列プログラムを作れる環境はやはり必需品なのだなぁと改めて感じたりする.研究しなきゃ...

くずれる男

みょんが負けてくずれる男の AA でも書くかと思い探していたら,MY・くずれる男コレクション なるものを見つけた.結構うまいものもあって,特にNo.22が凝った作りでなかなか良いなぁとおもふ.

問題

「数字 2, 2, 3 と,加減乗除 +, -, *, /, 単項マイナス -, 論理演算 &, |, ^, ~ [and, or, xor, not], シフト <<, >> を用いて 0 ~ 10 の数を作れ.」などという問題を夕飯の調達中に考えていた.

とにかく ALU で実行できる演算と3つの即値で目的の数字を作るという単純明快な目的である.しかしながら,これは結構難しい問題であり,計算機にやらせようとしても計算時間がかかりすぎるので実際に解かせるのは難しい.(簡単なやり方はスタックマシンをシミュレートすることだろうけど...)とはいうものの,夕飯を食べ終わるまで考え続けた結果としてなかなか面白い答えを導くことに成功した.その結果を用いると,たとえば 1,1,1 と上の演算子で任意の数字を作れることになる.

原理の肝は,NOT が1の補数であり,単項マイナスが2の補数であることによる.すなわち, -n = ~n+1 という関係式が成り立つため,+1はいつでも作れる. これにさえ気づけば任意の数字を巣くることが可能であることもすぐに想像がつく.つまり, -~x = x + 1, ~-x = x - 1 を繰り返せばよいのである.

ちなみにこの事実は「ハッカーのたのしみ」の最初のほうに書かれていたりもし,知っている人は知っていることのようである.

頭が痛い...

今日は某大学でミーティングがあったのだが,ミーティング終了後大人5人がひとつの車にすし詰めになって帰るという状況が生じた.使われた車は天井が低く5ナンバーであるからして,後ろの3人は非常に窮屈である.そして自分はその後ろ3人の一人だったため今でも体というか頭が痛い状態....車の持ち主はこの3月に新しい車を買うそうで,是非とも大きな車にしてほしい.

ちなみに,前回のミーティングの際にも行きに同じメンバーですし詰めとなったのだが,このときには渋滞ありの検問に引っかかるというおまけもついて,ある意味完璧だった.

ノートPCは半年でクリーニング

うちの Let's Note は Cドライブ 10G, Dドライブ 20G, Linux 10G というパーティションだったのだけどいつの間にやら C ドライブの空き容量が 100M 程度に... いったい何に 10G も使われているのか非常に疑問ではあるがこれでは新しいコンパイラをインストールできない.ということで, Cドライブを 15G に増量してクリーンインストールに突入.半年で再インストールというノートPCの使い方は正しいのか間違いなのか?一般的な人はどの程度の間隔で再インストールするのだろう?

«Prev || 1 | 2 | 3 |...| 1145 | 1146 | 1147 || Next»
Search
Feeds

Page Top