せかいや

いまいるここを、おもしろく http://sekai-in-the-box.appspot.com/

2013-09-01から1ヶ月間の記事一覧

【Java】「実装」と「振る舞い」の違い。クラスはオブジェクトではない。 パーフェクトJava学習感想文 その3

パーフェクトJavaを読んで改めてJavaを振り返り中。息も絶え絶えです。経緯については学習記録その1をご参照ください。以下、学んだこと。 「実装」と「振る舞い」の違い 「実装」と「振る舞い」は別の概念。 共通した振る舞いのことを「型」と呼ぶ。こうや…

【Java】リテラル・参照・文字列オブジェクト パーフェクトJava学習感想文 その2

パーフェクトJavaを読んで改めてJavaを振り返り中。息も絶え絶えです。経緯については学習記録その1をご参照ください。以下、学んだこと。 Stringオブジェクトと文字列リテラル 文字列リテラルはStringオブジェクト = Stringクラスのインスタンス。 言い換…

【Java】改めてJavaを振り返る。パーフェクトJava学習感想文 その1

インタプリタ言語に触れて約1ヶ月くらいがたちました。勉強していて常々感じているは 「これってJavaだとどうなってたっけ?」 ということ。 入社以来Javaを触って約5年。 ※まあSIerなのでコード量なんてたかが知れていると思いますが。他言語を知った上で、…

【Git】fetchコマンドは引数にトピックブランチを取らない

ずいぶん嵌ったので、備忘録をかねて。 fetchコマンドは引数にトピックブランチを取らない! 用語の整理 まずは用語の整理から。 トピックブランチ (ローカルにある通常のブランチ) 追跡ブランチ(ローカルにある追跡ブランチ) リモートブランチ(リモー…

【Ruby】【アルゴリズム】グラフ構造。最短経路を求める。ダイクストラ法(うそものVer)。

宣言通り、1週間で終わりました↓ プログラミングの宝箱 アルゴリズムとデータ構造 第2版作者: 紀平拓男,春日伸弥出版社/メーカー: ソフトバンククリエイティブ発売日: 2011/03/30メディア: 単行本購入: 15人 クリック: 255回この商品を含むブログ (31件) を…

【Ruby】【アルゴリズム】10パズルを解く。ファイナルアンサー。回答全部入り。

振り返り。テンパズルとは。 1から9までの、1桁の数字がかかれたカードが4枚ある。 この数字をそれぞれ1回ずつ使い、10になるように計算する。 あれです。 駅の切符とか、ナンバープレートとかで暇つぶしにやるあれ。 方法 1.計算順序を考えるのは大変なの…

【Ruby】【アルゴリズム】10パズルを解く。全ての数式を逆ポーランドで作る編

4桁の数字から全ての数式のパターンを列挙する。 数式は逆ポーランド記法で記述する。 (例)"12+3+4+" すごい!30分で書けた! もう再帰は見切ったぞ。 ・dupでコピーをとりながら再帰を回す(必要に応じて深いコピー) ・終了条件を満たしたものをresult配列…

【Ruby】【アルゴリズム】逆ポーランド記法

テンパズルを解くために下準備中。 おなじみ、テンパズルとは。 1から9までの、1桁の数字がかかれたカードが4枚ある。 この数字をそれぞれ1回ずつ使い、10になるように計算する。 あれです。 駅の切符とか、ナンバープレートとかで暇つぶしにやるあれ。え?…

【SCSS】【Webデザイン】背景にグラデーションを入れる

昨晩はアルゴリズムを考えすぎたためか 謎の頭痛が治まらず、何回も吐いた位ひどかったので 今日はサイトのデザインとか、そういうふわっとしたことを勉強しています。すごいよね。 考えすぎて吐くなんて。 今まで生きてきて経験ないわ。。 不思議なもので …

【Ruby】【アルゴリズム】重複組み合わせ。師匠Ver

重複組み合わせはFor文でシンプルに書けてすごい! と書いていたら師匠からメールが来た。■以前のコード i = 0 while i < 10 j = i while j < 10 k = j while k < 10 m = k while m < 10 result << "#{i},#{j},#{k},#{m}" m += 1 end k += 1 end j += 1 end …

【Ruby】【アルゴリズム】重複組み合わせ。シンプル!

問題 0から9までの数字を重複を許して4つ選ぶ時、 答えはいくつありますか? 若干眠くて口調が変だよ。 (例) 0011 と 1001 と 0101 は同じ 1112 と 1122 は違う 答え(全列挙型Ver) 最初に思いついたのは、0~9999を全部並べて、一個ずつ確認する方法。 既…

【Ruby】【アルゴリズム】ナップザック問題を解く。

ナップザック問題とは 幾つかの品物があり、この品物にはそれぞれ重量(cost)・価値(point)の2つのパラメータが与えられています。ある一定の重さまで品物を運べるとしたときに、価値の合計の最大値は幾つになるでしょう? 学んだこと ・Hashの使い方 ポイン…

【Ruby】【アルゴリズム】7パズルを解く。メモリ大丈夫Ver

前に書いた実装はメモリが爆発したけど、 こちらは大丈夫なVersionです。7パズルの説明などは 爆発Verの記事を参照ください 改善点 ・オブジェクトのハッシュ化 ・重複確認 コード #表示用 def show(panel) puts panel.to_s[0..3] puts panel.to_s[4..7] put…

【Ruby】Ruby の require はJavaとは違うよ

Rubyのrequire は、 使いたいクラスを宣言する程度の認識しかありませんでした。Javaのimportと同じ感じだと思っていました。 違うのですね。 requireは単にそのファイルを読み込んで実行するだけだから、 平たく言うと何でもできる。 クラスを生成する、と…

【Ruby】配列と文字列、どのくらいメモリに差があるの?

実装したアルゴリズムでメモリが爆発しました。配列をたくさん持ったのが良くなかった、というのは反省したけれど そもそも、 [1,2,3,4,5,6,7,8,9]ではなく"1234566789" にするとどれくらいメモリに差があるのか? 調べてみました。 ObjectSpace.memsize_of…

【Ruby】【アルゴリズム】7パズルを解く。メモリ爆発Ver

7パズルとは 8つのタイルと一つのスペースがあり、それぞれに数が書いてある。 タイルを上下左右にすべらせ、最終状態にする。ただし、枠からはみ出してはいけない[最終状態] ※9は空白を表す 9123 4567 この本に載ってる問題だよ↓ プログラミングの宝箱 ア…

【Ruby】【アルゴリズム】エイトクイーン問題を解く。全答列挙Ver

みんな大好き、師匠からメールが来たよ。 sekai-san I read recent entries at your blog. You have studied very hard, it is a great effort. I am worrying you to push yourself. However, as a reader of your blog, I want to hear your voice. ・・・ な…

【Ruby】多重配列(初期値に気をつける)

エイトクイーン問題を解くべく、 今まで使ったことのないRubyでの多重配列をおべんきょう。 NG例 初期値でオブジェクトを設定すると 全要素が同じオブジェクトを参照してしまう。Array.new(初期値オブジェクト)は、 全要素が同じオブジェクトを参照するた…

【Ruby】【アルゴリズム】BM法による文字列検索

今週末は目黒でRubyの集まりがあるみたいだ。でもまだまだ。。この程度じゃだめだ。 BM法による文字列検索 とは ボイヤー-ムーア文字列検索アルゴリズム(Boyer-Moore String Search Algorithm)は、効率的な文字列検索アルゴリズムの一種[1]。Robert S. Boy…

【Ruby】【アルゴリズム】二分木で方程式の解を見つける

学んだこと lambda を使った関数渡し Integer⇒Floatの変換 コード function = lambda{|x| x**5 - 10*x**4 + 25*x**3 + 40*x**2 + 200*x -500} def binary_search(_min, _max, epsilon, &func) _min = _min.to_f _max = _max.to_f mid = (_min + _max) /2 exe…

【Ruby】【アルゴリズム】ハッシュテーブルの実装。衝突回避あり(一次団子現象回避Ver)

ハッシュテーブルとは ハッシュテーブル (hash table) は、キーと値の組(エントリと呼ぶ)を複数個格納し、キーに対応する値をすばやく参照するためのデータ構造。ハッシュ表ともいう。 http://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5…

【Ruby】【アルゴリズム】二分木の実装 追加/削除/検索

二分木とは 二分木は「木構造 (tree structer) 」または「木 (tree) 」と呼ばれるデータ構造の一つです。 http://www.geocities.jp/m_hiroi/light/abcruby13.html 学んだこと 再帰コードを書くときに、状態が変わるものをレシーバーにするのは良くない。例え…

【Ruby】【アルゴリズム】キューの自作(リングバッファ)

リングバッファとは ・・・前述の,待ち行列がすぐに満杯になる問題を解決するには,データを取り出す度に配列 queue_data の先頭部分に空きができるから,この部分を再利用すれば良いことに気付く。これを効果的に行ったデータ構造が,次に述べるリングバッフ…

【Ruby】【アルゴリズム】スタックを使った「括弧の対応を調べるプログラム」

Rubyは、クラスを再オープンできるところが面白いです。でも眠いよ。 問題 3種類の括弧 (), {}, [] を含む文字列において,括弧の対応に整合性がとれているかどうかを判断する 解答 class Staple attr_accessor :column, :type def initialize( column, typ…

【Ruby】【アルゴリズム】「開き直り数」を求める

今勉強している、この本↓にあった問題、「開き直り数」を求めました。 プログラミングの宝箱 アルゴリズムとデータ構造 第2版作者: 紀平拓男,春日伸弥出版社/メーカー: ソフトバンククリエイティブ発売日: 2011/03/30メディア: 単行本購入: 15人 クリック: 2…

【Ruby】【アルゴリズム】Listクラスの自作

師匠にね、 検索だとか、いわゆるアルゴリズムが分からない人間は エンジニアとしてどこにも居場所はないんやない?みたいなことを言われたので、 改めて1からアルゴリズムの勉強を始めています。泣く暇もない 分からないわけじゃないんだ! 知らないだけな…

【Ruby】attr_メソッドが作れたよ~

attr_メソッドを自作しようとしてさんざん挫折している件、前回は、モジュールにクラスメソッド/インスタンスメソッド、 どちらも持ちたい場合はどうすればいいのか分からなかった。■結論 モジュールにクラスメソッドを定義したい ⇒モジュールをextendする …

【Rails】git push時に、Permission denied (publickey)エラー

嵌ったのでメモ。■OS Windows 現象 「git push heroku master」で以下のエラー。 $ git push heroku master Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the r…

【アルゴリズム】【Ruby】ソートのいろいろ ~2分挿入ソート

ソートのすごい記事 とか 自分で工夫してソートを考えている記事 とかみて戦慄している。。。 関係ないけど、昔の恋人にメール送ると 「こんなところが好きだった」と「こんなところが嫌いだった」 がごちゃまぜになって、なんともいえない気持ちになるよね…

【Ruby】言語内DSLとは。

Railsチュートリアルを勉強しています。 すごくわかりやすい。楽しい。 この中ででてくるRSpec↓ require 'spec_helper' describe User do pending "add some examples to (or delete) #{__FILE__}" end普通だったらメソッドの定義は def だよね? describe?…