せかいや

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

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

【Ruby】「小さい」クラスとは? プログラミングRuby学習感想文

この本を読んでいます。 プログラミング言語 Ruby作者: まつもとゆきひろ,David Flanagan,卜部昌平(監訳),長尾高弘出版社/メーカー: オライリージャパン発売日: 2009/01/26メディア: 大型本購入: 21人 クリック: 356回この商品を含むブログ (124件) を見る以…

【Ruby】【アルゴリズム】宣教師と人食い問題(全列挙型Ver) ※リファクタリング後

綺麗なコードを書く勉強をしたので まえのだめなコードをリファクタリングするぞ。解法的には間違っている事実は変わらないので、そこは気をつけてください(?)。 リファクタリングした点 履歴は文字列で持つけど、内部的には数値配列に変換してから処理を…

【Ruby】正規表現。ファイルの読み方。

ここの問題を解く。 Ruby 正規表現入門ドリルEngineer Flies - エンジニアは空を飛ぶ 2. lsの結果から カレントディレクトリ ".", 直上のディレクトリ "..", 隠し属性ファイル/ディレクトリ ".filename" を取り除く 3. HTMLファイルからtitleを抜き出す。 詳…

【Ruby】【文字コード】Ruby1.9で日本語(UTF-8)を表示する方法 windows

文字コードの問題ってなんでこんなに苦しいんだ・・・・ 解決策 環境変数に以下を追加 RUBYOPT=-EUTF-8 おかしいな、と思ったら 文字コード確認方法 # 外部エンコーディング p Encoding.default_external p $stdout.external_encoding # 内部エンコーディン…

【Ruby】【アルゴリズム】数独を解く。プログラミング言語Ruby 学習感想文 ~1章

「はてなブックマーク」っていう概念が分からない はてなのことが全然分かってない。 この本を読んでいます。 プログラミング言語 Ruby作者: まつもとゆきひろ,David Flanagan,卜部昌平(監訳),長尾高弘出版社/メーカー: オライリージャパン発売日: 2009/01/2…

【Ruby】バイナリ、packなど。 プログラミング言語Ruby 学習感想文 ~1章 数独を解く

この本を読んでいます。 プログラミング言語 Ruby作者: まつもとゆきひろ,David Flanagan,卜部昌平(監訳),長尾高弘出版社/メーカー: オライリージャパン発売日: 2009/01/26メディア: 大型本購入: 21人 クリック: 356回この商品を含むブログ (124件) を見る 1…

【Ruby】正規表現

とうとう、読み始めました。 プログラミング言語 Ruby作者: まつもとゆきひろ,David Flanagan,卜部昌平(監訳),長尾高弘出版社/メーカー: オライリージャパン発売日: 2009/01/26メディア: 大型本購入: 21人 クリック: 356回この商品を含むブログ (124件) を見…

【Ruby】【アルゴリズム】ガーベッジコレクションの実装。不正な状態遷移を見つける。ダイクストラ法。

「有限オートマトン」についてググっていたときに面白そうな問題を見つけたよ。 有限オートマトンとは関係ない話だけれど、勉強になりそうなのでチャレンジ。 (注) メモリに配慮した実装方法はこちら。 (10月9日追記) 問題 状態、'0'および、'A'~'I'に…

【Ruby】【アルゴリズム】有限オートマトンとは?宣教師と人食い問題(全列挙型Ver) ※だめな解法

字句解析・構文解析くらい知ろうねと言う師匠に、数式解析できたよーってメールしたら、返事が来たよ。 数式解析は最初の題材にはちょうど良かったね。 字句解析は有限オートマトンでやって 構文解析はプッシュダウン・オートマトンってのでやることが多いで…

【Ruby】【アルゴリズム】Rubyの補数とは。グレイコード。

Rubyにて、補数がよく分からなかったので整理。 printf "%b" , -0b110 #<= '..1010' どうしてこの結果になるかというと、 110の2の補数は1010 だから。 110 のビットを反転して001→ 1をたして010→ 左側に無限の1を加えて..1010 そっか。 0b110 は0b110の2の…

【Ruby】【アルゴリズム】数式解析(字句解析・構文解析)。右結合あり。操車場アルゴリズム

スタックの勉強をしたときから気になっている、 XMLパーサーの実装(Hamlとか)にチャレンジしてみようと。 まずは高らかに宣戦布告(師匠に)。 今日はパーサーを作ります!!! あら、、、 パーサーの作り方はどっかで調べたの?う。。。 調べてもあんまり…

【Ruby】【アルゴリズム】ハノイの塔 /モンテカルロ法

ハノイの塔 こんなにシンプルに書けるのね! def hanoi(n, start, goal, tmp) return if n == 0 hanoi(n-1, start, tmp, goal) p "move #{n} to #{goal}" hanoi(n-1, tmp, goal, start) end hanoi(3, "A", "B", "C")ビット演算の練習を兼ねて、グレイコード…

【Ruby】【アルゴリズム】ビット演算。掛け算しないで掛け算する。

掛け算・べき乗をビット演算で行っているサイトがあったので勉強。 掛け算を一回もしない掛け算 def shift_multi(x, y) m = 0 while x != 1 if x.even? y = (y << 1) # * 2 x = (x >> 1) # / 2 else m += y x -= 1 end end y += m end p shift_multi(15,3) …

【Ruby】【アルゴリズム】ビットカウント。最下位の1を倒していくVer。ループしないVer。

このサイトを参考に、 ビット演算の奥深さを勉強中。 レジスタ中の 1 になっているビット数を数えるアルゴリズム 最下位の1を倒していく def numofbits3 bits num = 0 while bits != 0 do num += 1 if (bits & (bits-1)) bits = bits & (bits-1) end num end…

【Ruby】【アルゴリズム】Rubyの最上位ビットはどこ? ビットカウントテーブルを使ってビットカウントの巻。

このサイトを参考に、 ビット演算の奥深さを勉強中。 レジスタ中の 1 になっているビット数を数えるアルゴリズム 今回はビットカウントテーブルを使う方法です。 Rubyでのビット符号って? Rubyの最上位ビット(MSB)はどこ? 右シフトは、符号ビット(最上位ビ…

【Ruby】【アルゴリズム】バックトラックはややこしい。 川渡り問題(リファクタリング後)

川渡りが解けたよーって師匠にメールしたら おれも解いてみました 1時間くらいかな、ちょっと時間かかったってメールが来た。むきー! このサンプルを参考にブラッシュアップ。以前のコードはこちら 改善ポイント 状態遷移図をビット化する @_members = ["da…

【Ruby】【アルゴリズム】重複を含む要素の順列(非数値もOK)

重複を含む順列 重複を含む要素のすべての順列を求める(例) "3331"→1333,3133,3313,3331 "aab"→aab,aba,baa たとえば "aabb" だったら4!/(2!*2!) で6通り。 コードで書くとこういう感じ。 使った要素はフラグを立てて、使っていない要素を配列につめていく…

【Ruby】【アルゴリズム】ビット演算。1 になっているビット数を数える。

ビット演算・・ってアルゴリズムを考える上で便利かも。 と思って勉強してみる。このサイトが、 どういうときにビット演算を使うと便利なのか、 が分かりやすく書いてあって面白かったです。 記念すべき1問目 レジスタ中の 1 になっているビット数を数えるアル…

【Java】パーフェクトJava学習感想文 まとめ

パーフェクトJavaを読みおわったよ。 パーフェクトJava (PERFECT SERIES) (PERFECT SERIES 2)作者: アリエル・ネットワーク株式会社,井上誠一郎,永井雅人,松山智大出版社/メーカー: 技術評論社発売日: 2009/09/24メディア: 大型本購入: 26人 クリック: 360回…

【Java】JSPコンパイルのタイミング パーフェクトJava学習感想文 その7

パーフェクトJavaを読んで改めてJavaを振り返り中。 経緯については学習記録その1をご参照ください。以下、学んだこと。 リフレクションは単なるAPI 例えばアノテーションは言語仕様だけれど リフレクションは「仕様」という範疇ではない。 Java言語仕様に…

【Webデザイン】 【jQuery】友達のサイトを作ったよ

お友達が個展を開くので、 そのサイトを作ったよ。完成したサイトはこちら岡山県で遠いけれど、近くの方は是非! 私もこの勉強期間が終わっていたら。。いきたい。 石井さんの要件 そんなに凝らなくてもいい 字体は明朝ざっくり!以下、作業中に学んだことな…

【Ruby】【アルゴリズム】川渡り問題(深さ優先検索Ver)

今日の二丁目はちび専ガッちびナイトかー。orz 川渡り問題とは 男と3つの荷物--キツネ(狐),ガチョウ(鵞鳥),トウモロコシ(玉蜀黍)1袋--のうちの1つしか運べません。キツネとガチョウまたはガチョウとトウモロコシをいっしょにしておくことはできませ…

【Java】「String.class」はリテラル記法。クラスメソッドのレシーバーって? パーフェクトJava学習感想文 その7

パーフェクトJavaを読んで改めてJavaを振り返り中。 え?我が家の育児ですか? 基本セルフサービスかな。この母親自体も言語獲得に必死なので、 子供というよりもはや同志の感があります。。 経緯については学習記録その1をご参照ください。以下、学んだこ…

【Java】 64ビット変数とスレッドセーフの関係性って? パーフェクトJava学習感想文 その6

パーフェクトJavaを読んで改めてJavaを振り返り中。 経緯については学習記録その1をご参照ください。以下、学んだこと。 オンデマンドインポートはなぜ良くないか オンデマンドインポートって、 アスタリスクでフォルダ内全てのクラスをインポートするあれ…

【Java】フィールドの型解決はコンパイルのタイミング。 パーフェクトJava学習感想文 余談

apparent type で決まるメソッドボディて なんやろうかと、疑問に思った次第っすという師匠の疑問に答えるべく、 メソッドの話ではなくて、フィールド参照時は 変数の宣言クラスによって型が解決されているという話ですね、と記事を書いたらお返事が来た。こ…

【Java】Hoge.thisってなんだ? パーフェクトJava学習感想文 その5

パーフェクトJavaを読んで改めてJavaを振り返り中。 経緯については学習記録その1をご参照ください。以下、学んだこと。 Hoge.thisってなんだ? synchronizedの章で出てきた一節。thisって、レシーバーだな、 くらいの認識しかなかったので改めて確認してみ…

【Java】隠蔽とオーバーロードの違い、詳しく。 パーフェクトJava学習感想文 余談

隠蔽とオーバーロードの違いについて書いたら、師匠からメールがきたよ。 つっこみやなくて、質問なんですが 呼ばれるメソッドの実体は、 隠蔽時:変数の型で決まる オーバーライド時:オブジェクトの型で決まる この隠蔽時ってなんですか? ちなみに、変数…

【Java】「式」と「文」と「式文」と。 パーフェクトJava学習感想文 その5

パーフェクトJavaを読んで改めてJavaを振り返り中。眠い。経緯については学習記録その1をご参照ください。以下、学んだこと。 文・式とは 文とは(特徴) 単独で完結する言語要素 文の種類 制御文 ブロック文 宣言文 式文(空文を含む) このうち終端にセミ…

【Java】Javaでの「関数渡し」の実現方法。 パーフェクトJava学習感想文 その4

パーフェクトJavaを読んで改めてJavaを振り返り中。パーフェクトPHP ⇒0.5キロ減 パーフェクトRuby ⇒2キロ減 今度は何キロ痩せるかな。子供を産んでも体重が変わらなかった私からすると、 「体重が落ちる」なんて、かつてない経験。。 経緯については学習記録…

【Java】すべてのクラスは対応するClassオブジェクトをもつ

昨日書いた記事の中でも オブジェクトと変数の違い、 クラスはオブジェクトじゃない、 について師匠からつっこみがあったので、修正したよ。ていうか最初のメールが Javaの再勉強ですか 今度は吐かないようにね。 ちなみにツッコミとかあったら、また吐いち…