ruby

「憤怒の火山」全列挙プログラム(3)

曲ごとの完全なパスを列挙する方針に書き換えて、同一の曲が選ばれないようにしてみました。あとは細かい変更がいくつか。 fname = "songs_.txt" open(fname) {|file| # create path data target_char = [] for a in "A".."Z" do target_char << a.to_s end …

「憤怒の火山」全列挙プログラム(2)

fname = "songs_.txt" open(fname) {|file| # パスデータ、曲名のハッシュを作成 path = {} songdb = {} while line = file.gets line.chomp! # Ruby1.9前提:stringのlengthの仕様の差で日本語のlengthを正しく取れない len = line.length upper = line.upc…

オブジェクト指向ならあんな書き方しねえよ、ということで修正。Arrayに対してメソッドを追加する方法で。 class Array def deletemin_comp x a = self.dup a.sort! for i in 0 .. a.size - 1 if a[i] > x self.delete_at(self.index(a[i])) return a[i] end…

昨日の続き

def delete_min_comp a,x a_ = a.dup a_.sort! for i in 0 .. a_.size - 1 if a_[i] > x a.delete_at(a.index(a_[i])) return a_[i] end end return nil end def ret_min_comp a,x a_ = a.dup a_.sort! for i in 0 .. a_.size - 1 if a_[i] > x return a_[i]…

そしてなんだこれは

require 'date' if ARGV.empty? print "Friday 13 Finder / usage: [count]\n" exit 1 end limit = ARGV.shift.to_i count = 0 year = Date.today.year month = Date.today.month while count < limit date_of_13th = Date.new(year,month,13) if date_of_13…

Rubyでも書いた

require 'date' if ARGV.empty? print "calendar / usage: [month] [year]\n" exit 1 end month = ARGV.shift.to_i year = ARGV.shift.to_i day = 1 wday = 0 print "Sun\tMon\tTue\tWed\tThu\tFri\tSat\n" while true if(Date.valid_date?(year,month,day))…

PHPでSQL直叩きするときにカラム数分いろいろ書くのがうざいので変なものを作ってみました。 # mysql insert generator if (ARGV.length != 2) print "mysql insert generator\n" print "usage: [this] [tablename] [number]\n" exit end tablename = ARGV.s…

Macにmysqlのgemをインストールする話

普通に # gem install mysql じゃ通らなかったので # gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config としてやる。以前も同じはまり方したはずなんだけどなぁ…。 ちなみにMySQLのインストールはGUIにて。数年前に書いた記事……

史上最大のコーディングスキル判定

こんなのがあったので解いてみた。3時間で解けないんじゃないかと不安だったけど、Rubyの強力なString・Arrayのライブラリを駆使し(←)75分で解答。以下続きを読む記法にて:

Ruby信者の罠

やっぱり行末のセミコロン忘れるよ!orz

重複のないランダムな数列を作る

3日前に書いたコードですが。 max = 300 def makerandarray(max) a = Array.new(max){|i| i} for i in 0 .. a.size-1 do a[i] = "#{a[i]},#{rand}" end a.sort!{|p,q| p.split(',')[1] <=> q.split(',')[1]} for i in 0 .. a.size-1 do k = a[i].split(',') …

紅玉賢者っぽいことをしてきました

最近はスクラッチから書く場合はC(主に授業)、既存のものをいじる場合はPerl(主に賢竜関係)だったんですが久しぶりにRuby使ってみました。おい。 メモ a = Array.new(4,Array.new(2,0)) b = [[1,"a"],[2,"b"],[3,"c"],[4,"d"]]でbをaにコピーしようとす…