De Bruijn Sequence
- 2018/06/23 07:35
-
大学のレポート内で De Bruijn Sequence について書く機会があった. これまた以前と同じく, 折角なのでこちらのブログにも, 若干内容を変えつつ載せておくことにした.
De Bruijn Sequence は, オランダ人の数学者 Nicolaas de Bruijn に因んで命名された系列で, 特定の長さのすべての組み合わせを含む系列である. 次数 の 種類に関する De Bruijn Sequence は, 長さ で表現可能なすべての部分列によって構成される. 次元数 (すなわちバイナリ) の De Bruijn Sequence は であり, ビットの固有な部分系列から成る ビット長の系列である. 例えば, は であり に対する有向グラフが下図1のように示される.
golang 始めたてメモ
- 2018/06/17 19:45
-
大学の授業で AWS の API を触る機会があり, その際に golang を使うようなので (API 一覧には, C++ 版もあるようなので, 個人的には C++ が良かった), 特に意義のないコードを取り敢えずいくつか書いてみている. ある程度文法がわかったら, まずはともかくクイックソートを書いてみたわけだが…
C++ で Data.Tuple.Extra っぽいもの
- 2018/06/15 01:50
-
ふと, C++ でもこんなような記述, 普通に出来るべきなんじゃないかなぁと思った.
Prelude> :m +Data.Tuple.Extra
Prelude Data.Tuple.Extra> uncurry (+) $ first (*2) $ dupe 42
126
Prelude Data.Tuple.Extra> uncurry (+) $ (+42) &&& (*2) $ 42
168取り敢えず, 似たような構文で同じような処理となるように作ってみた.
シンプルなブリッジのソフトウェア実装
- 2018/05/30 04:42
-
以前の投稿, ARPパケットに対する挙動からネットワーク上の盗聴者を特定するにて, 実験を行うにあたりリンクレイヤー上のパケットの受信と送信を行なった. このパケットを別のネットワークインタフェースから送出するようにすればブリッジになるし, MAC アドレステーブルと照合して転送すれば L2 スイッチにもなるとのことで, 一応 Linux 上で動くものを作ってみた.
2 枚の NIC が必要であるが, Virtual Box の仮想アダプタを利用すれば良い. 実装の本質的な部分は, 異なるディスクリプタへの書き込みのみである. これを応用して, 複数個のネットワークインタフェースにも対応してみたい.