読者です 読者をやめる 読者になる 読者になる

情報系 備忘録

情報系学習者の備忘録 間違ってるかも。

停留点

数学

最近はじめて停留点という場所を知りました。


そのような性質を持った点については扱ったことはあるのですが、

停留点という名前がついているとは知りませんでした。


ちなみにどんな点かというと関数f(x1,x2,,,,xn)に対して

fを各変数x1,,,,xnで偏微分した時にそれらの値が全て0になるような点です。


まあ馴染み深い言い方ですと傾き0とでもいいましょうか。

変数がxのみの場合はf'(x) = 0となる点でよく使っていましたよね。

n変数に拡張されただけです。


なので、これも同じように極値は停留点です。

しかし停留点は極値ではないです。

停留点は極値の必要条件で十分条件ではないです。

という簡単な話でした。

遅れました TOEIC受験

TOEIC

toeic受けてきました。

リスニング結構訓練してたつもりで、

公式問題集ではわりと90/100以上は安定してとれてたんですが、

今回の本試験ではあやふやに答えてしまったところが多かったような気がします。

普段の問題集でも勿論あやふやなところはあるので、案外いつもどおりなのかもしれません。

ちょっとでも分からなかったら全体的に難しく感じてしまうので笑



リーディングについては、普段の問題集では時間が足りないことが多いのですが、

3分ほどあまって終わらせてしまいました。

気づかないうちに、いつも以上に焦ってといていたのかもしれないです。

解いてる時は簡単だと感じていたんですが、終わって色々振り返るとあれ、微妙だなってなってます。

リスニングと真逆の現象ですね笑

何にしろ800ほどあれば良しですね。

どの程度で800到達なのか分かりませんが、

最低目標ラインを一応800にしときます。


では今日はこの辺で。

TOEICについて

TOEIC

お久しぶりです。

諸事情でToeicを受ける必要がありまして、公式問題集なんかを解きながら勉強しています。

初見で受けた時は700点ほどだったのですが、一応今回4月に受ける分はそこそこ勉強してます。

特にリスニングに関しては、適当に聞いてるだけで随分違うと感じますね。

慣れが大事ですね、まあ偉そうなこと言ってますが現状リスニングパートに関しては安定して80/100を

超えられるといった感じでたまに90を超えるといった程度です。


目標は850程度ですが、リーディングについても90パーセント近くとりたいですが難しいですね。

時間が何分足りません。リーディングについては80/100とれることが少ないです。


合計して160/200以上はとれているんですが、この点数だと850どころか800さえ難しいのではと思っています。


うーーん、リーディングパートが安定して8割超えられると合わせて85%程度の正答率で、また何か変わってくるんですけどね。


4月のtoeicに向けてがんばります。

もし受けられる方おられましたら、頑張りましょう〜

幅優先探索

アルゴリズム

今回は、アルゴリズムの一つである幅優先探索について。

幅優先探索は、木構造やグラフのデータを探索するアルゴリズムの一種であり、対照的なアルゴリズムとして深さ優先探索があります。こちらについても後々書くつもりです。



木構造の一つのNodeは簡単に以下のように定義できます。

class TreeNode{

int data;
TreeNode right;
TreeNode left ;

}

幅優先探索はその名の通り、幅を優先する探索方法であり、あるノードに対してそのノードに近接したノードから順に調べていくものです。

Queueというデータ構造を用いて実装することができます。
ちなみにQueueとは、FIFO(First In First Out)という特徴を備えたものであり、両方があいた筒状のものをイメージしていただければよいかなと思います。


アルゴリズムとしては以下のようになります。

  1. ノードを受け取り、Queueに追加する
  2. Queueがら空の場合は失敗。
  3. Queueからノードを取り出し、そのノードが目標であればそのデータを返し、停止する。
  4. 調べたノードの子ノードを全てQueueに追加する。この時にその子ノードからノードに対してポインタを張る。
  5. 2に戻る。

コードとしては以下のようになります。

void BredthFirstSearch(Node firstnode){
  
  Queueを生成する。
  目標なら終了。
  firstnodeに探索済みの印をつける。
  Queueにfirstnodeを追加する。
  
  while(Queueが空でない){
    Queueからノードを取り出す。
    foreach(取り出したノードの子ノード){
      探索済みの印をつける。
      目標なら終了。
      Queueに追加する。
    }
  }
}

幅優先探索の特徴は完全性、また空間計算量が探索対象が大きい場合に非常に大きくなることです。
一般的に最適性があります。

全てのノードを調べたい、またはあるノードを見つけたいといった場合に深さ優先探索ではなく幅優先探索が用いられることが多いようです。

自己紹介

自己紹介

こんにちは

D1108と申します。

私は日々情報系の学習をしている学生で、その備忘録としてこのブログを続けていければと思っております。

更新ペースなどは適当で、特に決めるつもりはないです。

何か指摘等ございましたらご自由にお願いします。

何か皆様の参考になることがあれば嬉しいです。

よろしくお願いします。