2018-01-01から1年間の記事一覧

【Golang】Disjoint-set algorithmによる無向グラフのcycle detectを実装する

Cycle in Undirected Graph Graph Algorithmを視聴したので、Disjoint set algorithmによるcycle detect実装してみます。 Disjoint set algorithmでは、以下3つの操作を使うことでcycle detectを行います。 MakeSet 各nodeだけの集合を作る(初期化) Union 2…

【Golang】reflect.DeepEqualでsliceとmapを組み合わせて比較する

先日、集合や族を扱うパッケージを書いていたところ、mapやsliceが混じった構造でどのようにEqualを実装するかで少しハマりました。reflect.DeepEqualの実装を見て解決したので備忘として整理します。 ちょうどGoで違うmapであることをテストする でも、同じ…

Golangでgraphパッケージを書いた

グラフ理論のアルゴリズムで遊ぶための前準備として、graphパッケージを自作してみました。 基本的な操作として、以下ができます。 無向グラフ/有向グラフの生成 頂点(Vertex)の追加/削除 辺(Edge)の追加/削除 How to Install $ go get github.com/cipepser/…

【Golang】LINE Notifyで画像を送る

先日の記事では、LINE Notifyでメッセージを送りました。 今回は画像を送ってみます。 少し検索してみても、メッセージを送る記事ばかりで画像を送るのはあまりないですね。 LINE公式のSDKでもimageFileで検索しても、実装されていないようなので、自分で実…

歴代の年始め最初に発表されたCVE(1999〜2018)をスクレイピングする

Googleスプレッドシートでのスクレイピングがとても便利なので、 題材としてNISTから1999年以降毎年最初に発表されたCVE(CVE-yyyy-0001)の descriptionを抜き出してみました。 やり方 IMPORTXML関数を使うだけです。簡単かつ強力でした。 フォーマットはIMPO…

【メモ】仮想通貨のハッシュ関数に求められる性質について

自分の頭の中を整理するために調べたり、考えたりしたメモ書きです。 備忘としてこちらに残すことにします。 全射性/単射性について 順列の最小完全ハッシュ関数に書いてあるように、全射性も単射性も必須ではない。 全射 def: が全射 射影した先(上記のB)…

GolangでFacebook feedを取得するSDKを書いた

bot作りに精を出している今日このごろ、Facebookのfeedが更新されたら通知するbotを作ろうと思い、自分用のfeed取得SDKを作ったので使い方をまとめます。 今のところGetFeedという関数しかないです。 Install どちらも自作になってしまいますが、以下2つをgo…