ガウス積分の公式とその証明

当ブログ内でガウス積分(オイラー=ポアソン積分)の公式を用いる際に self-contained でリファレンスを張るためと, 個人的な学習の記録として, 本エントリにてガウス積分の公式とその証明について書く1.. 筆者自身にとっての分かりやすさを優先しているため, 若干冗長的な記述があるかもしれない点に注意.

ガウス積分の公式

xRx\in\mathbb{R} のとき ex2dx=π\displaystyle\int_{-\infty}^{\infty}e^{-x^2}dx=\sqrt{\pi}

Haskell でリンクレイヤーにおける ICMP パケットの構築, 送受信および解析による ping の実装

Haskell で低レイヤーのネットワークプログラミングをそういえばしたことがなかったので, 何か実装してみたかったのだが特別ネタも思いつかないので, とりあえずイーサヘッダ, IP ヘッダ等を含む, 生の ICMP Echo/Reply パケットを扱ってみることとした.

ICMP パケットは IP パケットであるので, 通常は ICMP パケット部分のみを構築してPF_INET等で開いたソケットに送りつけたり, recv 等すれば送受信においては必要十分であるが, これではあまり面白みがないので, リンクレイヤーから扱うこととした.

生の ICMP パケットを扱うということは, ICMP データの自作はもちろん, イーサヘッダ, IP ヘッダの自作が必要となる. またイーサヘッダを自作するということは, MAC アドレスを解決しなければならないので, 最低限 ARP パケットの送受信および解析機能の自作が必要となることを意味する. ARP パケットの自作を要するということは, デフォルトゲートウェイやサブネット環境などを取得する機能も必要である. これらを自作してみた.


三角関数の公式の導出

  • 2018/09/06 09:00

参考文献 1 では, 高木貞治氏の書いた解析概論の緒言として示されている三角関数の古典的な導入法の問題点と, それに対する合理的な導入, 定義に関する記述があり, 興味深かったので読んでいたのだが, ふと高校数学 Ⅲ の「普通な」加法定理や積和, 和積の公式, 導関数の導出などが頭から抜けていたので, 復習がてら書くことにした. 一応, このエントリで言う三角関数 cosθ,sinθ\cos\theta,\sin\theta の定義は高校数学の範囲で言われる定義と同様であり, 次のとおりである.

高校数学における cosθ,sinθ\cos\theta, \sin\theta

直行座標平面上の原点 O(0,0)O(0,0) を中心とする半径 11 の円 CCx0,y0x\geq 0,y\geq 0 の部分を C+C_{+} としたとき, 弧度法によると, 点 A(1,0)A(1,0), C+C_{+} 上の点 P(x,y)P(x,y) を角 AOPA O Pθ (0<θπ2)\theta\ (0\lt\theta\leq\frac{\pi}{2}) となるようにとれば, 孤 APA P の長さは 角 AOPA O P そのもの, すなわち θ\theta である. このとき x=cosθ,y=sinθx=\cos\theta,y=\sin\theta である.

よくよく考えてみれば, この定義では, 孤 APA P の長さおよび実数 0<θπ20\lt\theta\leq\frac{\pi}{2} に対し孤 APA P の長さが θ\theta となる C+C_{+} 上の点 PP が存在することについて, 特に説明しておらず, 定義としては不十分な点があることが考えられる. 参考文献 1 にはこの問題に対する考察が綴られており, 読みやすい文体で書かれているので興味があれば読んでみることを勧める. 本エントリはそのような意味で, 特に面白みもなくただ単に高校数学 Ⅲ までの三角関数の内容を復習しているだけのものとなっているので, その点は悪しからず.