ruby

all-expression

どうにか速さ5倍に。あと23倍。むりだなー #all-expression2-8.rb $x=[] $a=[] def make fnk,kak l=$a.length x="" mae=[0]*(l+3) usi=[0]*(l+3) (l-1).times{|i| po=0; (kak[i]+1).times{|m| while usi[po]>0 po+=1 end po+=1 } po-=1 mae[po]+=1 pot=po+ma…

計測

テストするとき、1,2,3…と時計に合わせて数えている。たいして時間にこだわるようなものを作らないからだけど。みなさんどうしてんすかね。 さすがに面倒なので最低限のを作った。linuxはコマンドあるんでしたっけ。分布も調べる? こう、統計は日常で役に立…

All Expressions

http://golf.shinh.org/p.rb?All+Expressions あとは速さを100倍に・・・ # all-expression2-5.rb $x=[] def g j,i,c a=("0"*c+j.to_s(3))[-c..-1] if(a[i..i]!=nil);a[i..i]=="0" ? "+":a[i..i]=="1" ? "*":"-";else;"-";end end def coun a,m c=0 a.length…

Expression

http://golf.shinh.org/p.rb?Expression 遅いのは再帰のせいか配列か。3つめ10秒以上で登録失敗する expression-0.3.rb def ex a,b,l z=[] l.times{|i| if i==b;z+=[a[i]-a[i+1]] elsif i==b+1 else z+=[a[i]] end } z end $y=[] def exp a,l z=[] (l-1).ti…

Elias delta to Fibonacci

http://golf.shinh.org/p.rb?Elias+delta+to+Fibonacci なっちファンとしては見逃せません..? fibonaccicoding-4.rb n=1000 def fib num ans=[] a=1;b=1;num.times{|i| ans +=[a];c=b+a;a=b;b=c} ans end $fibo=fib(n) def fibc d 1000.times{|i| fc=$fibo[i…

bf,長い、遅い

おそいーどうするんだ。文字表示もまだおかしい。 http://codegolf.com/brainfuck brainfuck-1.1.rb $mmax=30000 buf=" "*$mmax $mmax.times{|i|buf[i]=0} $pos=0 $ibuf="" $gcount=0 $now=0 $mem=buf $stack=[] $sp=0 $debug="-d" def deb d #print d if $#…

maze solving

http://golf.shinh.org/p.rb?maze+solving maze.rb $z=gets('').split("\n") $y=$z[0].length $x=$z.length def peek(i,j) if i>$x||i<0||j<0||j>$y ;nil else ;$z[i][j..j] end end def poke(i,j,v) $z[i][j..j]=v end def deadnear(i,j) an =[] an+=[i,j-1…

複数行print

brainf*ckで makeBfPrint.rb a=gets('') len=a.length-1 print "+"*a[0],"." len.times{|i| sa=a[i+1]-a[i] if sa==0;mark="" elsif sa>0;mark="+"*sa else;mark="-"*(-sa) end print mark,"." } 入力 >makeBfPrint makeBfPrint.rb a=gets('') len=a.length-…

bf

(brainf*ckとは 8つの文字だけでプログラムが書ける言語らしいです。とはいえもともと0と1ですね) brainf*ckでp(foo)で文字列出力をするために。 あとは、繰り返しを "[5" のように書ける。"[100" などでもよい bfp1.rb # brainf*ck +put # # ",3.4[5>+6…

Square root

http://golf.shinh.org/p.rb?Square+root fedってなんの関数かと思った 2時間かかった、あまり短くない while(a=gets.chomp)do t=a[0..1];u=t[0..0] if(u=="-") a=a[1..10] if(a[0..0]=="0")then puts '-'+format("%.9f",a) else puts"nan" end else if(u=="…

重複行を消す delete duplicate lines

lineuniq.rb i=[] while li = gets i.push(li.chomp) end puts i.uniq http://golf.shinh.org/p.rb?delete+duplicate+lines Ruby_ Rank User Size Time Date Statistics 1 usa 12 0.1568 07/03/07 23:34:51 0B / 4B / 8B 2 eban 12 0.1288 07/03/07 23:41:34…

更新取得、これでいいかな

uri-info.rb require 'open-uri' # 10分。これ以下の指定は無視される min =600 if ARGV[0]==nil puts "usage: uri-info %0 [%1] =>type last-modified of %0 [timer:%1sec.]" puts " default interval= #{min}sec." exit end def getext(a) ext =a.scan(/[^…

どうにかヘッダだけ取得

やっと modified-check.rb require 'open-uri' # require 'net/http' # Net::HTTP.version_1_2 url =ARGV[0] uri = URI.parse(url) # puts uri, uri.host, uri.request_uri puts # "ok" http=Net::HTTP.start( uri.host, 80 ) # p http.methods # puts req =…

更新取得保存つづき

uri-info.rb (2007/8/26修正) (2007/08/28 だめだな 保存しなくても読み込んでしまっているようだ) # 指定秒数置きにlast_modifiedをチェック、更新されていたらデータを取得保存 # 秒数は目安 # 保存ファイル名は日時をうしろにつける、とりあえず拡張子は…

last-modified 2

更新日時をチェック。 まだURLはチェックしてない uri-info.rb require 'open-uri' if ARGV[0]==nil puts "usage: uri-info %0 =>type last-modified of %0" exit end url =ARGV[0] $out ="uri-info-log.txt" $ans ="" open(url) {|f| newdata ="last_modifi…

last-modified

test require 'open-uri' if ARGV[0]==nil puts "usage: uri-info %0 =>type last-modified of %0" exit end url =ARGV[0] out ="uri-info-log.txt" open(url) {|f| print "last_modified: ",f.last_modified ,"\n" o =File.open(out,"w") o.puts url, "now:…

ついでにリンクを全部開いてみる

require 'nkf' require 'open-uri' url ="http://d.hatena.ne.jp/hatecha/" brs="C:\\Program Files\\Mozilla Firefox\\firefox.exe" html = NKF.nkf('-w', open(url).read) ans =[] html.split(/\n/).map{|ww| an = /\"((http|ftp)\S+)\"/.match(ww) # matc…