昨日、Pythonで作ったプログラムをRubyに翻訳してみました。(^_^;
最近は、PCのスピードが速くなりすぎて、Cで作ると、改良しても、たいして差がないのですが、スクリプト言語だとちょっと改良すると、すぐ結果に反映するのでやりがいがありますね。(^_^;
ちなみに、Rubyの場合、速くなったのは、ほとんどHn関数をやめたことによるものです。(^_^;
●SendMoreMoney2.rb
# encoding: Shift_JIS # SendMoreMoney2.rb def main() tm=Time.now # Timer Start 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 = 1000*s+100*e+10*n+d more = 1000*m+100*o+10*r+e money = 10000*m+1000*o+100*n+10*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 end # ライブラリとして読み込まれた場合は実行しない。 if $0 == __FILE__ main() end
●実行結果
9567 +1085 ------- 10652 Runtime : 1.560 [sec]
※参考URL
●Python の if __name__ == '__main__': を Perl, Ruby, PHP で行う
●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 Ruby - rscの日記
●SEND MORE MONEY in Python(2) - rscの日記
●SEND MORE MONEY in Python(3) - rscの日記
- 作者: 高橋征義,後藤裕蔵,まつもとゆきひろ
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2010/03/31
- メディア: 単行本
- 購入: 15人 クリック: 394回
- この商品を含むブログ (79件) を見る
- 作者: るびきち
- 出版社/メーカー: シーアンドアール研究所
- 発売日: 2009/05/25
- メディア: 単行本
- 購入: 24人 クリック: 263回
- この商品を含むブログ (72件) を見る