タグ

programmingとnetworkに関するedo_m18のブックマーク (2)

  • ダイクストラ法(最短経路問題)

    ダイクストラ法 (Dijkstra's Algorithm) は最短経路問題を効率的に解くグラフ理論におけるアルゴリズムです。 スタートノードからゴールノードまでの最短距離とその経路を求めることができます。 アルゴリズム 以下のグラフを例にダイクストラのアルゴリズムを解説します。 円がノード,線がエッジで,sがスタートノード,gがゴールノードを表しています。 エッジの近くに書かれている数字はそのエッジを通るのに必要なコスト(たいてい距離または時間)です。 ここではエッジに向きが存在しない(=どちらからでも通れる)無向グラフだとして扱っていますが, ダイクストラ法の場合はそれほど無向グラフと有向グラフを区別して考える必要はありません。 ダイクストラ法はDP(動的計画法)的なアルゴリズムです。 つまり,「手近で明らかなことから順次確定していき,その確定した情報をもとにさらに遠くまで確定していく

  • C 言語で HTTP クライアントを作ってみよう (1)

    C 言語で HTTP クライアントを作ってみよう (1) HTTPクライアント C言語版 HTTP プロトコルについては既に解説しましたので、 いきなりソースの解説に入ります。 その前に一応コンパイル方法を説明しておきましょう。 % cc -o http-client http-client.c とすることで、http-client というバイナリが作成されます。 SunOS ではネットワーク関係のライブラリが libc に含まれていないので、 % cc -o http-client http-client.c -lresolv -lsocket -lnsl とライブラリを指定しなければならないでしょう。プログラムの実行は % ./http-client とすることで、http://localhost/ の内容をヘッダも含めて標準出力に出力します。 % ./http-client http

  • 1