日記0207

今日は現代社会と法のノートをとってそのあとソシャゲなどしてから寝た。

昼に起きてご飯を食べて寮に向かった。

アホほど大量の荷物があり5階まで運ぶのはとてもつらかった。荷物を運ぶだけでは終わらず、なぜか今年度は部屋の荷物をすべて年度末までに持ち帰らないといけないので部屋を片付けて下までカラーボックスなどを運ぶ重労働を行い息も絶え絶えという状態になってしまった。そのあと体力回復のためにぼーっとしていた。

部屋に運んだ荷物は展開しないといけないのだが、それもつらい。パソコンだけ出してあとは必要な時に出せばいいかと思うことにした。

実家では自分の部屋がなく、リビングのこたつで過ごしていたのだが、キーボードと肩の位置関係がかなり悪く打ちにくかったことに気づいた。椅子と机、大事。かなり打ちやすくなっていて楽しくなって久しぶりにe-typingをした。結果初めてGood!を取ることができ、良かった。そのあとはやればやるほど成績が落ちていって萎えてしまった。

夕方、勉強をする気にもなれずぽげ~っとしていた。

無駄な時間を過ごすのは、やめようね!

家と比べて寮のいいところはご飯とお風呂の時間を自分の都合でコントロールできることで、生活を最適化できる。すると、時間が増えるがその時間を虚無に費やしてしまうので何をしてもだめ。

 

夜は、勉強をしたくないのでRustでk-means法を実装することにする。

k-means法は最初にクラスタをランダムに割り振る。その後

  • クラスタの重心を計算する。
  • 各点を自信から一番近い重心に割り振りなおす。

この二つのステップを重心の割り振りに変化がある限り続ける。

この通りに実装して実行してみると、

plot.png

こんな感じになってしまい、つらい。

複数回実行していい感じのやつを採択するといいらしいんだけどどうなった状態が"いい"のかプログラムで判断する方法がわからない。有識者~~~~~~

Rust書いていて唯一不満なのがif cond { hgoe }にしないといけなくてこのぐらい短い一文でもフォーマッタによって三行に展開されてしまうことで、{}を省略して書きてえ~と思わずにはいられない。if cond:hogeみたいなさあ一行で書けるようになってほしい。

あと今日は struct Point {x : f64, y : f64,} の演算子オーバーロードが欲しくなってその方法を調べた。C++のようにT operator + (lhs,rhs)見たいに直接演算子を書くのではなく、impl ops::AddAssign for Point{ fn add_assign(){} }と文字で関数を実装するやり方を知った。