2015-02-21

日記

 午後起きて外でパスタ食べて本屋行ったりしたあとは喫茶店で本読んで帰ってきた。夜はARCやったりして寝た。
 あーうん、そうなの。そうなの。何か書きたくなったの、でも特に書きたいことはないの。強いて言うなら年齢を重ねることについてうっかり泥沼にはまりそうな思考をしそうになったのだけど、実際はそれについて長く書けるほどの考えごとをしたわけではないの。怖いなと思った。それは自分の年齢を振り返ってみての話だったり、あるいは自分の将来や家庭のことを考える話だったり。
 自分の身体を操縦するということがもう何年も続いているから、身体の細かい異常にも敏感になってくる。一瞬で治まるような細かい頭痛、体幹や足の筋肉の違和感、アレルギーの症状の出方、寝不足のときの体調の変化、逆に寝過ぎたときの変化、空腹の持続による腹痛のリスク、栄養不足による気だるさ、耳の聞こえ方や目の見え方、挙げればきりがないんだけど、精神的な調子のコントロールも含めて、何をすると良くて何をするといけないのかということが少しずつではあるものの把握されていく。一方でわからないことも増えるし、運動しないために衰えも感じるし、健康への意識は強くなってる。そしてそれはやっぱり死ぬのがどうとか考えてしまうことと関わってくる。だから際限なく私を苛む問題だ。面倒くさい。
 インフルエンザから復調して、山積した課題やノルマを崩すところから始めているものの、思うようにいってくれない。私の性格の常であるから仕方ない。できること、そのときにやりたいことから少しずつ詰めていくしかない。はいがんばろう。
 そういえば私はストレスの管理が下手だ。というよりも自覚をしないように振る舞ったり、そもそもストレスという概念を日頃から意識しないようにしてるので、気付いたら異常な負荷が溜まっていたり、自分が楽しめることで意識的に発散できなかったりする。いい意味でもわるい意味でも抑圧的なので、どうにも調子の上げ下げが自分の予測のつかないタイミングでやってくる。そりゃまあそういうものだと思えばそうなのだけど、もう少し上手くやるように心がけないと、身体が死んではいけないときに寝込むはめになったりする。春以降も忙しそうなので、なるべく注意が傾けられるようにしておきたい。

雑記 [programming, C++, Java]

・ARC034Cだった
 ARC034C:http://arc034.contest.atcoder.jp/submissions/342262
 解説:http://www.slideshare.net/chokudai/arc034
 素因数分解して約数の総数を出しましょうよという問題。そもそも解答が正確に考えられてなかったので時間内には解けませんでしたちゃんちゃん。素因数分解したくない……って念じてたら正しいことが考えられなかった。いざ書くと簡単という。
 あとは連想配列の使い方ね。mapというのがそれです。知らなかった。ちなみに単なる集合はそのままsetというやつを使えばよろしい。

int main() {
  int a,b; cin >> a >> b;
  ll res = 1;
  //せんげん map<type,type> name;
  map<int,int> m;
  //いてれーた
  map<int,int>::iterator itr;
  for (int i = b + 1; i <= a; i++) {
    int x = i; //値がりがり削るから別の変数にコピーしないとね
    //素因数分解
    for (int j = 2; j * j <= a; j++) {
      while (x % j == 0) {
        m[j]++; //key=jのvalueをインクリメントする
        x /= j;
      }
    }
    if (x != 1) m[x]++; //余った素数も忘れずに
  }
  //いてれーたの使い方 itr->firstがkey、itr->secondがvalue
  for (itr = m.begin(); itr != m.end(); itr++) {
    res = res * (itr->second + 1) % 1000000007;
  }
  cout << res << endl;
  return 0;
}


Javaの絵本を読んだ
 ちょっと事情があったので読んだ。オブジェクト指向の入門だなという印象。踏み込んだ説明はなかったので逆にC#との違いがほとんどないんじゃないかとか思った。インスタンスとかオブジェクトとかインスタンス化とか区別が厳密にあるのかもしれないけどこだわっても仕方なさそう……?
- クラスのインスタンスが作成される時に実行されるメソッドコンストラクタという(クラス内ではクラス名と同名のメソッドとして記述される)
- Javaでは(?)メンバ変数のことをフィールドと呼ぶ
- 同名のメソッドを異なる引数の数や型で書くことをオーバーロードという
- class A extends B {...} クラスBを継承したクラスA
- final修飾子をつけるとフィールドは定数になる、クラスは継承できなくなる
- static修飾子をつけたらインスタンスを作らなくてもクラス名から直接アクセスできる、どのインスタンスでも値が共有される
- staticメソッドは非staticメソッドではオーバーライド(継承したメソッドの上書き)できない
- staticメソッドから同じオブジェクト内のフィールドやメソッドを参照するときは参照される方もstaticである必要がある
- 関数名だけを定義したメソッドを抽象メソッドと呼び、抽象メソッドを持つクラスのことを抽象クラスと呼ぶ
- abstract class A { abstract void f(); ... } 抽象クラスAの宣言と抽象メソッドfの宣言
- 抽象クラスは継承して使い、抽象メソッドをオーバーライドして具体的な処理を記述する
- インターフェースは実装する利点がよくわからなかったから別のもので見なおしたほうがいいと思いました

広告を非表示にする