今度は、Javaで作ったSEND MORE MONEYのプログラムをRubyに翻訳してみました。
ふつう、Rubyの方がPythonよりも遅いですが、この場合、Rubyの方が倍速ぐらい速いようです。なぜだか、ここでも、逆転してしまいました。(^_^;
こんなたわいもないプログラムでも、色々な言語で並べてみると面白いですね。(^_^;
※参考URL
●SEND MORE MONEY C言語プログラム - rscの日記
●SEND MORE MONEY(2) C++ - rscの日記
●SEND MORE MONEY(3) C言語プログラム - rscの日記
●SEND MORE MONEY JavaScriptプログラム - rscの日記
●SEND MORE MONEY in Java - rscの日記
●SEND MORE MONEY in Python - rscの日記
●SEND MORE MONEY in Python(2) - rscの日記
●SEND MORE MONEY in Ruby(2) - rscの日記
●SEND MORE MONEY in Python(3) - rscの日記
●SendMoreMoney.rb
# encoding: Shift_JIS # SendMoreMoney.rb tm=Time.now # Timer Start def Hn(p,q,r,s,t) # 10000*p+1000*q+100*r+10*s+t return 10*(10*(10*(10*p+q)+r)+s)+t end p=(0..9).to_a # [0,1,2,3,4,5,6,7,8,9] p.permutation(8) do |s,e,n,d,m,o,r,y| next if s*m==0 # (s==0||m==0)ならスキップ send = Hn(0,s,e,n,d) more = Hn(0,m,o,r,e) money = Hn(m,o,n,e,y) next if send+more!=money # チェックを潜り抜けたものだけを表示 puts " "+send.to_s puts " +"+more.to_s puts "-------" puts " "+money.to_s puts end tm=Time.now-tm # Timer Stop print "Runtime : %.3f [sec]\n"%tm
●実行結果
9567 +1085 ------- 10652 Runtime : 2.178 [sec]
- 作者: 高橋征義,後藤裕蔵,まつもとゆきひろ
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2010/03/31
- メディア: 単行本
- 購入: 15人 クリック: 394回
- この商品を含むブログ (79件) を見る
- 作者: るびきち
- 出版社/メーカー: シーアンドアール研究所
- 発売日: 2009/05/25
- メディア: 単行本
- 購入: 24人 クリック: 263回
- この商品を含むブログ (72件) を見る
- 作者: アンク
- 出版社/メーカー: 翔泳社
- 発売日: 2008/09/04
- メディア: 大型本
- 購入: 1人 クリック: 18回
- この商品を含むブログ (12件) を見る