Ruby

プログラミング言語別コメント記法

コメントアウトするときのやり方が言語ごとに違うのでネットで探して一覧にしてみました。ちゃんと表示できるかな。 Java => // or /* */ or /** */HTML => XML => CSS => /* */bat => rem or ::PHP => // or # or /* */JavaScript => // or /* */VBA => ' o…

コマンドがありません

なぜRubyを2.0以上にしたかというと、HerokuのドキュメントにRubyは2.0以上と書いてあったからなのですが、Rubyを2.1.2にしたら、なんとherokuが使えません。コマンドがありません、というエラーが出ました。 あちこち参考に、gemでuninstallして、toolbelt…

rbenvとruby-buildのインストール

Ubuntuのソフトウェアセンターで入れたRubyが1.9.3で、2.0以上にしたいと思いました。 とりあえず、ソフトウェアセンターでアンインストール。 ネットを見ると、rbenvとruby-buildで入れるのがよろしいらしので、とりあえず、ソフトウェアセンターでそれぞれ…

食玩問題

以前、「ガチャポンの確率論」というのを書いています。 http://d.hatena.ne.jp/niming538/20080403 ここでは、ガチャポンで例えば6個そろえるのに何回かかるか、という問の意味は平均何回かかるか、という場合もあるかもしれませんが、多くの場合はたとえば…

黄金比(黄金率)

Sussman(サスマン)の「計算機プログラムの構造と解釈」Structure and Interpretation of Computer Programの練習問題 1.13. Rubyを片手に計算機として使いながら解きました。 qr5を5の平方根、fi = (1 + qr5)/2 (黄金比)とした場合、フィボナッチ関数Fib(n)…

pascal.rb

パスカルの三角形という、上の段のとなり同士を足して下段を作っていく数字の三角形があります。課題は何行目の何列目という指定をすると数字を答えるものでしたが、それより、一段全部答えた方がきれいな感じがするので下記のプログラムになっています。 # …

change.rb(両替プログラム)

Sussman(サスマン)の「計算機プログラムの構造と解釈」Structure and Interpretation of Computer Programの最初の方にCounting Changeという1ドルをコインにする場合の場合の数を求める話があります。アメリカのコインは多くてhalf-dollars, quarters, dime…

mydircat.rb

workフォルダにいろいろためしがきのプログラムやテキストがあって、typeなりcatでひとつずつ中身をみるのがめんどうなときがあります。正規表現でファイル名がヒットしたものを一度に見たいときのプログラム(スクリプト)です。cat => mycat => mydircatと…

kan2num.rb

そもそも、たのしいRubyに七千八百二十三とかを7823とかに変換するプログラムを作れというのが練習問題にあって、回答がネット上にありました。 def kan2num(string) digit4 = digit3 = digit2 = digit1 = "0" nstring = string.dup nstring.gsub!(/一/, "1"…

tab2spc.rb

ようやくできたかな。まずテスト。 # test_tab2spc.rb require 'test/unit' require 'tab2spc' class Tests < Test::Unit::TestCase def test_fill_ary assert_equal([], fill_ary([])) assert_equal([["a",1,0]], fill_ary([["a",1,0]])) assert_equal([["a…

tab2space.rb

とあるperlのテキストの最初の方にtab2spaceというタブをスペースに変換するルーチンが載っていました。これをRubyに書き直してみて、とりあえずちゃんと動いているのですが、なんか気持ちよくないので考え中です。 # tab2space.rb tabwidth = 8 while line …

正規表現による日本語の送り仮名の揺れの統一

先日の記事http://d.hatena.ne.jp/niming538/20080921が自分でたいへん気に入っています。 制作会社で働く人向け「はじめての正規表現」(http://d.hatena.ne.jp/jdg/20080921/1222002244)という記事に感化されて書いたものです。 まず通常の正規表現に関する…

正規表現

制作会社で働く人向け「はじめての正規表現」(http://d.hatena.ne.jp/jdg/20080921/1222002244)という面白い記事があって、その中で「見積もり」とか「見積」を統一的に「見積り」に正規表現で変換しようとする話がありました。 こういうのはなかなかむずか…

ゆめじきねんかん

前回のぶたさんのしりとりをやってみたら、夢二記念館というのがでてきましたた。 ゆめじきねんかん かくもん もんじゆぼさつ つうぼう うすごおり りありずむ「うすごおり」=>「りありずむ」もわるくないですね。 つぎのはなんだかわからない ひつしよく く…

Passengerで作ったしりとり

DreamhostがPassenger(mod_rails)を標準にしました、というので以前作ったぶたさんのしりとりを作ってみました。http://shiri.bp7e.com/shiri/toriプログラムは以下の2つだけ。こんな簡単にアイデアをホームページにできることに感動。Rails万歳! #shiri_co…

Passenger

Dreamhostというサイトで、railsをいじり始めました。サポートwikiにていねいにRailsサイトの作り方を書いてあります。 fcgiでの作り方みたいのを書いてあるのですが、最初の一行目に「現在はPassengerを標準にしています」とあってしたがって読み替えて読ま…

erbでエラー

rubyのerbで、private method `gsub!' called for nil:NilClassというエラーが解決せずに困っています。研究中。 Script Error private method `gsub!' called for nil:NilClass Backtrace (erb):33:in `komojifree' (erb):48:in `checkword' (erb):84 erb.c…

36進数のランダム乱数

サイト(ドメイン)名や、ユーザ名、パスワードなどを考えるのに適当な言葉を考えるのがたいへんなので、4桁の36進法、36進数の乱数を発生させて考える種にしています。Rubyで作っているので、これをerbで書いてサイトに載せたいと思い、作ってみました。htt…

rubyで空白行の重複を削除する(訂正)

以前、ワンライナーに関する記事(http://d.hatena.ne.jp/niming538/20080329)で、rubyで空白行の重複を削除するというのを紹介しましたが、その例では空白だけでなく同じ行の重複も削除されてしまっていたので、考え中です。ruby -e'text = [];last=""; whil…

入れ子配列

前回の記事を書いてて{2 => 3, 3 = 1}を[ [2, 3], [3, 1] ]と変換したり、逆変換したりしたいと思いました。入れ子の配列をフラットな配列にする方法はflattenというメソッドがあって、[ [2, 3], [3, 1] ].flattenとすると[ 2, 3, 3, 1 ]になったと思う。こ…

テストを思いついたら9割り完成

数字の24は2x2x2x3です。2の3乗掛ける3です。これを書き表すのに2,2,2,3と書いてもいいし、[2,3], [3,1]と書いてもいいし、2^3x3と書いてもいい。過去の自分の記事をみると、[2, 2, 2, 3]というように配列に入れている場合と、{2 => 3, 3 = 1}の二通りがあり…

プログラムの勉強

日経ソフトゥエア2008.09号が「例題を解きながら、実戦力を身につけよう! 楽しく学ぶプログラミング」という特集で、1題目が「3の倍数と3の付く数字だけ全角の漢数字(例:30なら三〇)で出力し、それ以外は半角数字で出力する」というもの。2題目が「二…

Dir.globコメコメをつかったワンライナー

Rubyで、Dir.glob('**/*')と書くと、ディレクトリ(フォルダー)の中身を再帰的にたどって配列に格納してくれてたいへん便利です。これを使って、ファイル名の一部を正規表現(Regular Expression)で指定して、深いところにあるファイルを探し出すワンライ…

erbとeruby

erbとerubyについて、若干勘違いをしていました。過去の記事は忘れてください。 ここにあるやりかただと、比較的簡単に埋め込みrubyの環境設定ができます。できました。UTF-8も問題なし。 Ruby入門:ERBによるHTML内でのRuby実行 http://hogeo.jp/blog/memo/…

erubyでutf-8

備忘:utf-8" %> というのをrhtmlのファイルの先頭か、のなかのどこかに入れる。これにより、デフォルトで西欧(ISO-8859-1)で開いてしまうことを回避できる。 解説: RubyでCGIを書くとき、erubyを使うと埋め込みで書けてとても便利です。スピードも問題あり…

willcom d4が欲しい

iPhoneよりなによりWillcom D4が欲しいのですが、高いと思います。Willcomはいりませんので、D4だけ下さい、と言っても128,600円ですと、かえって高くなる。べつに高くなるわけでもないけれど、安くならない。待っていれば安くなるのなら待ちますが、EeePCが…

テキストに行番号を振る

\>ruby addlinenumber.rb addlinenumber.rb 01 : # AddLineNumber.rb 02 : 03 : File.open(ARGV[0]) { |f| 04 : f.read.each_with_index{ |line, index| 05 : printf("%02d : %s", index + 1, line) 06 : } 07 : } each_with_indexというメソッドが使いたく…

ガシャポンの確率論(その3)

前回まででわたしの長年の疑問であったガシャポンは何回で揃うか、という課題に解答が得られました。 考え方の順序としては、次のようになります。 1.すべての場合を数え挙げる方法で、たとえばn回で揃う確率とかをシミュレートするプログラムを作る。これ…

ガシャポンの確率論(つづき)

前回、ガシャポンのセットを全部そろえるのに何回かかるか、というのを算出するのに、仮に70%と置きました。たとえば4種類のセットの場合、9回ガチャガチャすれば70%の確率で4種類がそろう。5種類のセットの場合、11回やっても70%にならない。いまのところわ…

ガシャポンの確率論

ガシャポン(ガチャポン)でセットをそろえる(フルコンプリートする)のにいくらかかるか(たとえば90%の確率で)、確率(たとえば10回で揃う確率)は? 平均何回で揃うか? という種類の質問は、「たとえば」ということばが象徴するように、個人的な思いが…