k平均法(k-meansクラスタリング)実装

Courseraの機械学習コースでk平均法を学んだので、理解を深めるために実装してみた。 わざわざ日記にするほど難しくはないが、メモということで。ソースコードはここ。メインは次のGetKMeans_withCost()で、tryNumの数だけk平均法を試して、コスト(最寄りの…

ニューラルネットワーク実装

Courseraの機械学習コースでニューラルネットワークを学んだので、習作としてC#で実装してみた。多層パーセプトロン対応。Classification専用(シグモイド関数をベタ書きしてるので)。 ソースコードはここにおいてある。 実装の概略 ネットワーク各層の関数…

HackerRank Week of Code - 19 参加日記

HackerRankのWeek of Code - 19に参加したのでそのメモ。 結果は346位/3176人だった。 Fix the Cycles 4つのノードA,B,C,Dをもつ有向グラフを考える。D→Aのエッジをa、A→Bのエッジをb、B→Cのエッジをc、C→Dのエッジをd、A→Cのエッジをe、B→Dのエッジをfとす…

線形回帰とロジスティック回帰の実装

Courseraの機械学習コースで多変量線形回帰(最小二乗法)とロジスティック回帰を学んだので、理解を深めるためにC#で実装してみた。 特にロジスティック回帰は、コースで最急降下法の実装をやらなかった(Octave組み込みのfminuc()を使う)ため、練習として…

二分探索の練習

二分探索の練習。 問題は「プログラミングコンテスト」「二分探索」あたりで適当にググったもの。 - UpperBoundとLowerBound CのSTD関数をC#で実装。 public static int LowerBound(int[] ar, int val) { var lb = -1; var ub = ar.Length; while (ub - lb >…

初等整数論の基本の復習

2016/8/20誤記修正基本的な数学がいまいち使いこなせてないので復習しておく。参考にしたのは蟻本と以下のサイト。 http://www2.cc.niigata-u.ac.jp/~takeuchi/tbasic/BackGround/ ユークリッドの互除法 整数aとbについて、a > b > 0 かつ a % b を r とした…

Topcoder Marathon Match Round90の参加日記

TopcoderのMarathonMatchは、過去3回参加していずれも上位3割くらいの結果に終わっている。よって目標は上位2割。 これまでの反省点まとめ 問題をちゃんと読む 紙と鉛筆で考えてから組む。いきなり実装しない Web等を参考にしすぎない。アルゴリズムは自…

Union-Find書き直し(C#)

C#

前々回のエントリで、Union-Findの効率が少し悪いとコメントをいただいた。確かに、実務上の問題は小さそうだが、このデータの持ち方はイマイチかもしれない。 そこで、次のように書き直してみた。 各ノードにParentとRank情報を持つ 配列ではなくツリー構造…

Topcoderサイトのリンク集

ひどいデザインで有名なTopcoderのサイトだが、本当に目的の記事にたどり着けないレベルになってしまった。 個人的によく使うところをメモしておく。 SRM Match Editorials http://apps.topcoder.com/wiki/display/tc/Algorithm+Problem+Set+Analysis アクテ…

C#実装(Kruskal法とUnionFind)

C#

クラスカル法(連結グラフの最小全域木を求める)はアルゴリズムがとても分かりやすくて好ましい。参考は例によって蟻本。 ・辺の集合から、最小コストのものを見つける ・この辺が、これまで取り出した辺と連結していなかったら使う。連結済なら破棄 →これ…

木星をバスケットボールとしたときの星の大きさ

宇宙少年の息子のために、ボールやビー玉で太陽系を作ってあげた。そのときにいろいろ計算した結果を、捨てるのも何なので日記に書いておく。 まず太陽系の恒星と惑星。木星の直系を24cm(大人用のバスケットボールくらい)に合わせると、地球と火星がビー玉…

二次平面のベクトル演算(C#実装)

C#

二次平面幾何の復習として、内積や外積、線の交点などを計算するコードを書いてみた。どこかで再利用するかもしれないのでクラス化してある。 参考にしたのは蟻本とこのサイト。 まず、X・Y座標の保持と、座標用の演算オペレーターを用意する。 /// <summary> /// Pon</summary>…

ダイクストラ法の実装(C#)

C#

前エントリでPriorityQueueが用意できたので、最短経路を解くコードをダイクストラで書いてみた。PriorityQueueを二分ヒープで実装したため、計算コストはO((E+V)logV)になっているはず。 ダイクストラ法 - Wikipedia なお、C#のTupleがIComparableではない…

C#でのPriority Queue(優先キュー)実装

C#

.NETのC#にはPriorityQueueがなくて困るので自作してみた。 二分ヒープを使った実装で、ほとんど蟻本のソースコードそのまま。ただし、次の拡張を行っている。 ジェネリック型に対応 昇順、降順の指定可 カスタムIComparerを指定可 Peek()、Count()、Clear()…

Kyle Simpson「Advanced JavaScript」学習メモ(2)クロージャ

クロージャ 関数が構文スコープ外で実行されても、自分自身のスコープを覚えている機能をクロージャを呼ぶ。 function foo() { var bar = "bar"; function baz() { alert(bar); } bam(baz); } function bam(baz) { baz(); //"bar" } foo(); この例では、baz…

Kyle Simpson「Advanced JavaScript」学習メモ(1)スコープ

Pluralsightの「Advanced JavaScript」(Kyle Simpson)学習メモ。 スコープとJavaScriptコンパイラ JavaScriptのコンパイラは、コンパイルと実行の2つのフェーズに分けられる(実際はさまざまな高速化のためのテクノロジーがあるが、ここでは単純化する)…

Brian Lonsdorf「Hardcore Functional Programming in JavaScript」学習メモ

Pluralsightの「Hardcore Functional Programming in JavaScript」(Brian Lonsdorf)学習メモ。 レベルはAdvancedとあるが、実際はJavaScriptでの関数型プログラミング・初中級編といった内容だった。練習問題が豊富でなかなか楽しめた。 Tips 不要な名前は…

Douglas Crockford「JavaScript the Good Parts」学習メモ

Pluralsightの「JavaScript the Good Parts」(Douglas Crockford)の学習メモ。 同名の書籍(日本語版:「JavaScript: The Good Parts -『良いパーツ』によるベストプラクティス」)のまとめ版ビデオだろうか。著者ご本人によるセミナーを録画したもののよ…

Spring学習メモ(MVCフレームワーク:全体像、コントローラ)

学習メモ。参考にしたのはオフィシャルリファレンス。 http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html SpringのMVCフレームワークは、他のWeb MVCフレームワークと同じように、リクエストドリブンでServlet(Dispatch…

Spring学習メモ(Springとは~IoCコンテナ)

仕事でSpringを触る羽目になったことになったので、勉強した内容をメモしておく。 参考にしたのは公式リファレンスとPluralsightのSpringコース。 Spring Framework Reference Documentation http://www.pluralsight.com/courses/spring-fundamentals Spring…

Topcoder Open 2015 Marathon Match(Round 3)の参加日記

Round1が53位/171人、Round2が61位/171人だった。今回の目標も上位2割。 前回、前々回の反省点まとめ。 問題をちゃんと読む(前回は終了後に判明した誤読があった) 紙と鉛筆で考えてから組む。いきなり実装しない Web等を参考にしすぎない。アルゴリズムは…

Topcoder Open 2015 Marathon Match(Round 2)の参加日記

6/9記載ミス修正。hogeover30さんありがとうございます。 マラソン初参加の前回(MM1)で53位/171人だった。今回は一気に上位2割を目標にしてみる。 前回の反省点は次のとおり。 ちゃんと問題を把握し、手元で考えてから組む Web等を参考にしすぎない。アル…

Topcoder Open 2015 Marathon Match(Round 1)の参加日記

初マラソンマッチ。目標は上位4割。ちなみにSRMは緑なのでかなり背伸びしている。 コンテスト1週間前~前日 マラソンの知識がほぼゼロなので、Web上の記事をいろいろ漁る。 全般 &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;a h…

Word2010が遅いときの対処法まとめ

特に図表を多用したときに、Word2010が遅くて使い物にならなくなるときがある。(次ページ遷移に数十秒かかるなど) いろいろ調べた対処法をまとめてみた。 ※順番に実行するという意味ではない。いろいろ試す案の列挙。 Windows Updateの実行 デフォルトプリ…

HTML5のPivotViewerをアップグレードしてみた

MSから出ていたSilverlightのPivotViewerという画像ビューワーがある。 http://www.blackcountrycaravans.co.uk/advanced-stocklist.aspx こんな感じにかっこ良く動いてとても人気なのだが、Silverlight自体の存続が怪しいうえに、PivotViwerに関するMSのペ…