プログラミング

スポンサーリンク
プログラミング

[Ruby] 最大部分配列問題を解く

最大部分配列問題。 配列内のある部分を足しあわせたとき、その合計が最大化する部分を探す問題。 例えば配列 があったときに、足しあわせた合計が最大になる部分は、添字1〜4の。要素の合計は15になる。 分割統治法を利用して解くことになる。...
プログラミング

RubyのArrayのcombination

集合の組み合わせを全探索する場合、組み合わせをビット演算で実現することがあると思う。 C++でdataの組み合わせを全て列挙する例と実行結果を載せる。 #include <iostream> #define N 4 int...
プログラミング

Ruby マージソート実装

今回はArrayクラスに組み込んだ。 Rubyでは配列外アクセスはnilが帰るだけなので、番兵じゃなくても良い気がするが、ここはセオリーに従い実装。 class Array def merge_sort!(s = 0, e = siz...
プログラミング

Ruby 挿入ソート実装

今回は挿入ソートの実装。 ソート周りは、Rubyらしく書いている以下の記事もあるけど、本記事ではアルゴリズムの手順そのままRubyで書く。。。え、C使えよって? で実装はこれ a = 1.upto(a.size-1) do |i|...
プログラミング

[Ruby] ワーシャルフロイド法

名前も実装もかっこいいアルゴリズムのワーシャルフロイド法をrubyで実装する。 重み付きで有向な、しかもコストが正の場合に、全点間の最小コストを非常に簡潔にかくことができるもの。 INF = 9999999.freeze nodes_...
プログラミング

[Ruby] クイックソート自作

分割統治法を学んでいるついでにクイックソートを自作する。 クイックソートはピボットの選び方の違いで平均計算量に違いが出るそう。 今回実装したのは、部分配列の先頭をピボットにするという安易な方法。 あんまQUICKじゃな・・ def qu...
プログラミング

[Ruby] UnionFind木の実装

Union-Findアルゴリズムを木構造で実装する。 wikiに擬似コードでアルゴリズムが書いてある。 Union-Findがどんなもんかというと、何個かの要素があるとして 2番目と5番目を同じグループにして(Union) 3番目と4番...
プログラミング

RubyでLCS長問題を解く

久しぶりに自分のブログにアクセスしたら「データベース接続エラー」になってた・・。 最近ブログ放置していた、というのも、RailsとかJSとかのwebネタは社内の情報共有場所に投稿してしまうので、この個人ブログに重複して書くのもうんこだなーと...
プログラミング

Railsアプリを動かそうとした時にJavaScript runtimeが無いと言われる件について

Railsを動かそうとした時や、assets:precompile するときに以下のようなエラーが発生した時の対処法。 Could not find a JavaScript runtime. See for a list of ava...
プログラミング

CoffeeScript 存在チェックのチェーン

連続してCoffeeScriptの ? について記事を書いているけど、これが最後になると思う。 こんな適当なCoffeeScriptコードがあるとする。 hogehoge.hoge1.hoge2.hoge3(); hoge3に到達す...
スポンサーリンク
タイトルとURLをコピーしました