知恵袋の数学の質問のゾロ目の問題をRubyで解いてみた。(2)

 昨日のRubyのプログラムの正規表現の部分が改良できそうだったので、検索したらいいのを見つけました。(^_^;
 プログラム自体もすっきりして、しかも高速化しました。o(^-^)o
 やっぱり、自分で考えるより、検索した方が早いですね。(^_^;

※参考URL
You Look Too Cool ≫ 「同じ文字が2個並んだ文字列」の正規表現

●Zorome02.rb

# Zorome02.rb
tm=Time.now  # Timer Start
cnt=0
for x in 1..1000000 do
  cnt+=1 if x.to_s=~/([1-9])\1\1+/
end
puts cnt
tm=Time.now-tm  # Timer Stop
print "Runtime : %.3f [sec]\n"%tm

●実行結果

33228
Runtime : 1.827 [sec]

 ちなみに、JavaScriptに翻訳したら次の通りです。(^_^;

●Zorome.html

<html>
<head>
<title>Zorome.html</title>
</head>
<body>
<script type="text/javascript">
var tm=(new Date()).getTime();  // Timer start
var cnt=0;
for(var x=1; x<=1000000; x++)
  if(/([1-9])\1\1+/.test(x)) cnt+=1;
document.write(cnt,"<br>");
tm=(new Date()).getTime()-tm;  // Timer stop
document.write("Runtime : ",tm/1000.0, "[sec]<br>");
</script>
</body>
</html>

●実行結果

33228
Runtime : 1.121[sec]

Rubyの絵本

Rubyの絵本

JavaScriptの絵本

JavaScriptの絵本