やかんです。

今日やったことについて

今日もDALLEに描いてもらいました。

筋トレした。

毎度毎度、久しぶりに筋トレして自分の非力さに気づいて終わるっていう。継続的にやりたいな。

アルゴリズムとデータ構造(自学)

まあ、軽く復習ってことでゆるくいきましょう。

  • 忘れたと思っていたけど、割としっかり理解していたんだな。
    • 問題はソートの方なのかなあ。
  • ヒープとかの配列で表現される木っぽいデータ構造は、親や子にどういったインデックスを指定したらアクセスできるのか、という点が大事だ。
    • 挿入の場合、右の子として挿入されたか左の子として挿入されたかって場合分け必要だっけ?
    • →挿入の場合は場合分けしなくていいんだ。なんて優秀なデータ構造や。
  • delete minの場合に、やや場合分けが複雑になるのか。
    • 左の子、右の子を参照するインデックスを考える。
    • →真面目にやろうと思ったら数学的帰納法で完結するし、真面目にやろうとする必要ないから、ぱっと見で具体例からわかるインデックスの指定で十分。
    • このとき、ヒープが版順序であって、完全順序ではないという点をそれなりに強く意識すればやりやすいかも。
    • 子供同士で比較して、小さい方に着目するのか。なるほど。

ヒープ復習完了。まあ、次は二分探索木だよね。

  • 二分探索木、挿入は簡単だ。
  • delete系むずいな。。
    • 最小値の探索に取り組んでいる。これむずいー。
    • あ、わかった。二分探索きのデータ構造についての理解が浅かっただけだ。最小値は、ルートノードの左側にしか存在しない。ヒープとごっちゃになっていたな。
  • deleteした要素の穴埋めはどうするんだ?
    • なるほど。賢い。

完全に実装完了したわけじゃないけど、必要な関数は全て実装したはずなので終了しよう。

アルゴリズムとデータ構造(授業)

  • 探索については教科書にないらしい。
  • 探索の話自体はシンプルだ。実装はどうだかわからないが。

競技プログラミングの鉄則 ~アルゴリズム力と思考力を高める77の技術~

  • 貪欲法、発想自体はとてもシンプルだ。実装もそこまで難しくない。
  • Aスターの実装、練習問題として何を扱うのがいいんだろうか。

数学

一通り、1変数の微分完了。積分に入る。

  • 積分、基礎的なことも身についていないなあ。。文系範囲でちょろちょろ積分できるだけで満足していたのか。。

やることorやりたいこと

  • 貪欲法の実装、A*の実装。

↑これは今日中にやるか。あと、数学だな。微分する。

↑一部やったので、

  • A*の実装。
  • 積分の計算練習。

ということで、今日の日記終了。最後までお読みいただき、ありがとうございます。