Rubyで小町算
続きまして,1?9までの数字の間に適当に+,-,*,/を挟んで答えを100にする小町算をRubyでやってみました.
class Komachi
def initialize
@result = []
@reg = /(\+|\-|\*|\/)[2-9]/
calc()
calc('-1')
end
attr_reader :result
def calc(string = '1', n = 2)
if n == 10
@result.push(string+"=100") if eval(string.gsub(@reg, '.0\&')) == 100
else
['+', '-', '*', '/', ''].each do |cal|
calc(string + cal + n.to_s, n + 1)
end
end
end
end
komachi = Komachi.new()
komachi.result.each{|s| puts s}
puts komachi.result.size.to_s + '個発見!'
結果は別ファイルにしました.プログラムがあってれば,100になるパターンは162個あるようです.(,)とか累乗とか含めだすともっとありそうですが,めんどくさそうなのでやめておきます.
2006/07/23 19:26 | Ruby | トラックバック(0) | コメント(0)
Rubyで小町数
最近ちょっと勉強しはじめたRubyの練習です.「自乗したら小町数(1?9までを1回ずつ使った9桁の数,例:324587691)になる整数を全て列挙する」ってのをやってみました.
array = []
(Math.sqrt(123456789).ceil..Math.sqrt(987654321).floor).each do |i|
temp = (i ** 2).to_s.split('')
array.push(i) if temp.uniq.size == 9 and !(temp.include? '0')
end
array.each {|i| puts i.to_s + " ^ 2 = " + (i ** 2).to_s}
puts array.size.to_s + '個発見!'
実行結果
11826 ^ 2 = 139854276 12363 ^ 2 = 152843769 12543 ^ 2 = 157326849 14676 ^ 2 = 215384976 15681 ^ 2 = 245893761 15963 ^ 2 = 254817369 18072 ^ 2 = 326597184 19023 ^ 2 = 361874529 19377 ^ 2 = 375468129 19569 ^ 2 = 382945761 19629 ^ 2 = 385297641 20316 ^ 2 = 412739856 22887 ^ 2 = 523814769 23019 ^ 2 = 529874361 23178 ^ 2 = 537219684 23439 ^ 2 = 549386721 24237 ^ 2 = 587432169 24276 ^ 2 = 589324176 24441 ^ 2 = 597362481 24807 ^ 2 = 615387249 25059 ^ 2 = 627953481 25572 ^ 2 = 653927184 25941 ^ 2 = 672935481 26409 ^ 2 = 697435281 26733 ^ 2 = 714653289 27129 ^ 2 = 735982641 27273 ^ 2 = 743816529 29034 ^ 2 = 842973156 29106 ^ 2 = 847159236 30384 ^ 2 = 923187456 30個発見!
というわけで,30個ありました.
2006/07/22 00:54 | Ruby | トラックバック(0) | コメント(0)
がんばれlivedoor!
なんだかホリエモン事件以降のlivedoorは良い方向に向かっている気がします.特にlivedoor Readerはものすごく良くできているし,livedoor clipもなかなかいい感じです.(とりあえずアカウント作ってみました.もう一息でdel.icio.usから乗り換えられる?)
トップページもYahoo!のパクリっぽかったっていうかYahoo!そのものでしたが,ついにオリジナルなものに変更され独自のコンテンツを提供していくそうです.じゃあ今度ははてなのパクリか,っていう話もあるみたいですが,そうではなくlivedoorにしかできないサービスになることを期待しています.
余談ですが,livedoor Readerは英語化したら普通に世界を取れそうなぐらいのクオリティだと勝手に感じているのですが,livedoorのコンテンツの英語化というか国際化はしないのかなぁとちょっと思いました.
参考ニュース
- ブログを核にリストラしたライブドアのポータル戦略 - CNET Japan
- ITmedia News:「ヤフーに追いつけ」は“卒業”――ライブドアポータルがリニューアル (1/2)
- 「livedoorのリニューアルはCGM系を中心にするための変更」伊地知副社長
2006/07/05 20:01 | Web | トラックバック(0) | コメント(0)