2013-09-01から1ヶ月間の記事一覧
パーフェクトJavaを読んで改めてJavaを振り返り中。息も絶え絶えです。経緯については学習記録その1をご参照ください。以下、学んだこと。 「実装」と「振る舞い」の違い 「実装」と「振る舞い」は別の概念。 共通した振る舞いのことを「型」と呼ぶ。こうや…
パーフェクトJavaを読んで改めてJavaを振り返り中。息も絶え絶えです。経緯については学習記録その1をご参照ください。以下、学んだこと。 Stringオブジェクトと文字列リテラル 文字列リテラルはStringオブジェクト = Stringクラスのインスタンス。 言い換…
インタプリタ言語に触れて約1ヶ月くらいがたちました。勉強していて常々感じているは 「これってJavaだとどうなってたっけ?」 ということ。 入社以来Javaを触って約5年。 ※まあSIerなのでコード量なんてたかが知れていると思いますが。他言語を知った上で、…
ずいぶん嵌ったので、備忘録をかねて。 fetchコマンドは引数にトピックブランチを取らない! 用語の整理 まずは用語の整理から。 トピックブランチ (ローカルにある通常のブランチ) 追跡ブランチ(ローカルにある追跡ブランチ) リモートブランチ(リモー…
宣言通り、1週間で終わりました↓ プログラミングの宝箱 アルゴリズムとデータ構造 第2版作者: 紀平拓男,春日伸弥出版社/メーカー: ソフトバンククリエイティブ発売日: 2011/03/30メディア: 単行本購入: 15人 クリック: 255回この商品を含むブログ (31件) を…
振り返り。テンパズルとは。 1から9までの、1桁の数字がかかれたカードが4枚ある。 この数字をそれぞれ1回ずつ使い、10になるように計算する。 あれです。 駅の切符とか、ナンバープレートとかで暇つぶしにやるあれ。 方法 1.計算順序を考えるのは大変なの…
4桁の数字から全ての数式のパターンを列挙する。 数式は逆ポーランド記法で記述する。 (例)"12+3+4+" すごい!30分で書けた! もう再帰は見切ったぞ。 ・dupでコピーをとりながら再帰を回す(必要に応じて深いコピー) ・終了条件を満たしたものをresult配列…
テンパズルを解くために下準備中。 おなじみ、テンパズルとは。 1から9までの、1桁の数字がかかれたカードが4枚ある。 この数字をそれぞれ1回ずつ使い、10になるように計算する。 あれです。 駅の切符とか、ナンバープレートとかで暇つぶしにやるあれ。え?…
昨晩はアルゴリズムを考えすぎたためか 謎の頭痛が治まらず、何回も吐いた位ひどかったので 今日はサイトのデザインとか、そういうふわっとしたことを勉強しています。すごいよね。 考えすぎて吐くなんて。 今まで生きてきて経験ないわ。。 不思議なもので …
重複組み合わせは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 …
問題 0から9までの数字を重複を許して4つ選ぶ時、 答えはいくつありますか? 若干眠くて口調が変だよ。 (例) 0011 と 1001 と 0101 は同じ 1112 と 1122 は違う 答え(全列挙型Ver) 最初に思いついたのは、0~9999を全部並べて、一個ずつ確認する方法。 既…
ナップザック問題とは 幾つかの品物があり、この品物にはそれぞれ重量(cost)・価値(point)の2つのパラメータが与えられています。ある一定の重さまで品物を運べるとしたときに、価値の合計の最大値は幾つになるでしょう? 学んだこと ・Hashの使い方 ポイン…
前に書いた実装はメモリが爆発したけど、 こちらは大丈夫なVersionです。7パズルの説明などは 爆発Verの記事を参照ください 改善点 ・オブジェクトのハッシュ化 ・重複確認 コード #表示用 def show(panel) puts panel.to_s[0..3] puts panel.to_s[4..7] put…
Rubyのrequire は、 使いたいクラスを宣言する程度の認識しかありませんでした。Javaのimportと同じ感じだと思っていました。 違うのですね。 requireは単にそのファイルを読み込んで実行するだけだから、 平たく言うと何でもできる。 クラスを生成する、と…
実装したアルゴリズムでメモリが爆発しました。配列をたくさん持ったのが良くなかった、というのは反省したけれど そもそも、 [1,2,3,4,5,6,7,8,9]ではなく"1234566789" にするとどれくらいメモリに差があるのか? 調べてみました。 ObjectSpace.memsize_of…
7パズルとは 8つのタイルと一つのスペースがあり、それぞれに数が書いてある。 タイルを上下左右にすべらせ、最終状態にする。ただし、枠からはみ出してはいけない[最終状態] ※9は空白を表す 9123 4567 この本に載ってる問題だよ↓ プログラミングの宝箱 ア…
みんな大好き、師匠からメールが来たよ。 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での多重配列をおべんきょう。 NG例 初期値でオブジェクトを設定すると 全要素が同じオブジェクトを参照してしまう。Array.new(初期値オブジェクト)は、 全要素が同じオブジェクトを参照するた…
今週末は目黒でRubyの集まりがあるみたいだ。でもまだまだ。。この程度じゃだめだ。 BM法による文字列検索 とは ボイヤー-ムーア文字列検索アルゴリズム(Boyer-Moore String Search Algorithm)は、効率的な文字列検索アルゴリズムの一種[1]。Robert S. Boy…
学んだこと 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…
ハッシュテーブルとは ハッシュテーブル (hash table) は、キーと値の組(エントリと呼ぶ)を複数個格納し、キーに対応する値をすばやく参照するためのデータ構造。ハッシュ表ともいう。 http://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5…
二分木とは 二分木は「木構造 (tree structer) 」または「木 (tree) 」と呼ばれるデータ構造の一つです。 http://www.geocities.jp/m_hiroi/light/abcruby13.html 学んだこと 再帰コードを書くときに、状態が変わるものをレシーバーにするのは良くない。例え…
リングバッファとは ・・・前述の,待ち行列がすぐに満杯になる問題を解決するには,データを取り出す度に配列 queue_data の先頭部分に空きができるから,この部分を再利用すれば良いことに気付く。これを効果的に行ったデータ構造が,次に述べるリングバッフ…
Rubyは、クラスを再オープンできるところが面白いです。でも眠いよ。 問題 3種類の括弧 (), {}, [] を含む文字列において,括弧の対応に整合性がとれているかどうかを判断する 解答 class Staple attr_accessor :column, :type def initialize( column, typ…
今勉強している、この本↓にあった問題、「開き直り数」を求めました。 プログラミングの宝箱 アルゴリズムとデータ構造 第2版作者: 紀平拓男,春日伸弥出版社/メーカー: ソフトバンククリエイティブ発売日: 2011/03/30メディア: 単行本購入: 15人 クリック: 2…
師匠にね、 検索だとか、いわゆるアルゴリズムが分からない人間は エンジニアとしてどこにも居場所はないんやない?みたいなことを言われたので、 改めて1からアルゴリズムの勉強を始めています。泣く暇もない 分からないわけじゃないんだ! 知らないだけな…
attr_メソッドを自作しようとしてさんざん挫折している件、前回は、モジュールにクラスメソッド/インスタンスメソッド、 どちらも持ちたい場合はどうすればいいのか分からなかった。■結論 モジュールにクラスメソッドを定義したい ⇒モジュールをextendする …
嵌ったのでメモ。■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…
ソートのすごい記事 とか 自分で工夫してソートを考えている記事 とかみて戦慄している。。。 関係ないけど、昔の恋人にメール送ると 「こんなところが好きだった」と「こんなところが嫌いだった」 がごちゃまぜになって、なんともいえない気持ちになるよね…
Railsチュートリアルを勉強しています。 すごくわかりやすい。楽しい。 この中ででてくるRSpec↓ require 'spec_helper' describe User do pending "add some examples to (or delete) #{__FILE__}" end普通だったらメソッドの定義は def だよね? describe?…