2016-03-01から1ヶ月間の記事一覧

Tree構造を利用して問題を解いてみる・その2(Ruby)

こことはちがう Tree 構造を使って、プロジェクト・オイラーの Problem 61をもう一度解いてみました(前回)。使った Tree 構造はこちらです。コードはそれほどちがいません。クラスを増やしただけ複雑になったとみるか、Node の重複を許すためメインループ…

Ruby で Tree構造(その3)

これまでとは別の実装をしてみました(前回)。前回はノードは何でもよかったのですが、今度は Node クラスを作っています。そして、Node インスタンスとその値(value)を別にしています。Tree クラスに Node インスタンスを登録していて、Node インスタン…

CoffeeScript の練習

ここで作った JavaScript のプログラムを、CoffeeScript で描き直してみました。onload や onclick のやり方がわからず、結構苦労しました。どうも jQuery でやるしかないみたいです。HTML はおおよそ同じなので、CoffeeScript の部分だけ載せます。 cvs = t…

Linux Mint(Ubuntu)で CoffeeScript を使う

面倒くさい人向けです。最新のバージョンを使おうとか、スキルがある人は別のやり方でやって下さい。 Linux mint 17.2 で確認しました。コンパイルを Node.js でやるので、インストールが必要です。面倒なので、バージョンが古いですが「ソフトウェアの管理…

特異メソッド内のクラス(Ruby)

特異メソッド内のクラスは必ず Class クラスになります。 class A def self.print_class puts self #=>A puts self.class #=>Class end def print_class puts self #=><A:0x007effb7e1e868> puts self.class #=>A end end A.new.print_class A.print_class p A.instance_of?(Clas</a:0x007effb7e1e868>…

Tree 構造を利用したヒープ(Ruby)

ここで実装した Tree 構造を使いました。 require './tree' class Heap < Tree def self.build(ar) raise "Argument is not Array." if ar.class != Array ar1 = ar.dup q = [] t = Heap.new(a = ar1.shift) q << a t.build1(q, ar1) t end def build1(q, ar…

Tree 構造を利用した二分探索木(Ruby)

(※注記)以下のコードは未熟なので、二分探索木については(よろしければ)こちらをどうぞ。(2019/1/18) アルゴリズムを学ぼう作者: 川中真耶,杵渕朋彦,椎名俊輔出版社/メーカー: アスキー・メディアワークス発売日: 2012/05/30メディア: 大型本購入: 5人…

Tree構造を利用して問題を解いてみる(Ruby)

前回実装した Tree構造を使って、プロジェクト・オイラーの問61を解いてみました。問題はこれです。

Ruby で Tree構造(その2)

前に Ruby で Tree 構造を作る記事(参照)を書きましたが、もう少し汎用的に使えるものを作ってみました。

時刻の辞書順アルファベット化(Ruby)

マイクロ秒まで採った現在時刻を、アルファベットの辞書順になるように String に変換して出力します。 module Utils def self.time_lexic t = Time.now i = (t.to_i.to_s + sprintf("%06d", t.usec)).to_i ar = ("a".."z").to_a st = "" begin st = ar[i % …

メモ付き探索(Ruby)

アルゴリズムを学ぼう作者: 川中真耶,杵渕朋彦,椎名俊輔出版社/メーカー: アスキー・メディアワークス発売日: 2012/05/30メディア: 大型本購入: 5人 クリック: 34回この商品を含むブログ (6件) を見る 次のような問題があります。 石の山があり、そこから二…

単純なソートのおさらい(Ruby)

アルゴリズムを学ぼう作者: 川中真耶,杵渕朋彦,椎名俊輔出版社/メーカー: アスキー・メディアワークス発売日: 2012/05/30メディア: 大型本購入: 5人 クリック: 34回この商品を含むブログ (6件) を見る 上から、バブルソート、選択ソート、挿入ソート。以前に…

グラフと探索(Ruby)

アルゴリズムを学ぼう作者: 川中真耶,杵渕朋彦,椎名俊輔出版社/メーカー: アスキー・メディアワークス発売日: 2012/05/30メディア: 大型本購入: 5人 クリック: 34回この商品を含むブログ (6件) を見るいま上の本を読んでいるのですが、コード例が Java なの…

Linux Mint(Ubuntu)でChromeのアップデートにエラーが出る

32 bit 版の Linux で Google Chrome のサポートが終わりましたが、どうもそのせいで 64 bit 版の Linux でも Chrome のアップデートにエラーが出るようになりました。世界的な発現らしく、海外でも同じだということです。対策はこのブログ記事に載っていま…

クロージャの動作

Ruby の lambda はクロージャです。クロージャの動作は、初心者にはなかなかむずかしい。ちなみに蛇足ですが、lambda {|a, b| ..} と ->(a, b) {..} とは同じことです。 def a(fn) b = 100 fn[5] p b.object_id #=>201 end b = 1 p b.object_id #=>3 f = ->(…

Linux のHDD をまるごとコピー

Linux ってシステム丸ごとコピーできるのだな。こういうバックアップの仕方があるのか。 $ dd if=/dev/hdX of=/dev/hdX Ubuntu日本語フォーラム / 新しいHDDにまるごとコピー DDコマンドで物理ディスクをバックアップする - kurobaraのブログ ※追記 dd_rescue…