最終更新: 2011-03-12T05:02+0900
後ろの方の問題はしゃれにならない難しさだ。まずもって問題が理解できない。
puts 3*(333*334/2) + 5*(199*200/2) - 15*(66*67/2)
ぐだぐだ考えないで足し合わせていくだけでも良かった気がする。
def even_fibonacci(an_2, an_1) 4*an_1 + an_2 end a = [0, 2] until 4_000_000 < a.last a[0], a[1] = a[1], even_fibonacci(*a) end print a[0] + (a[1] - 3*a[0])/4
案ずるより産むが易し。
n = 600851475143 i = 3 while i*i < n if n%i == 0 print i, " " n = n/i next end i += 2 end print n
12個列挙して一番大きいのを選びました。こんなんでいいのか?
999.downto(900){|p|
999.downto(900){|q|
x = (p*q).to_s
if x == x.reverse
puts "#{x} = #{p}*#{q}"
end
}
}
# 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 # 2 3 2 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 # 2 3 2 5 7 8 9 10 11 12 13 14 15 16 17 18 19 20 # 2 3 2 5 7 2 9 10 11 12 13 14 15 16 17 18 19 20 # 2 3 2 5 7 2 3 10 11 12 13 14 15 16 17 18 19 20 # 2 3 2 5 7 2 3 11 12 13 14 15 16 17 18 19 20 # 2 3 2 5 7 2 3 11 13 14 15 16 17 18 19 20 # 2 3 2 5 7 2 3 11 13 15 16 17 18 19 20 # 2 3 2 5 7 2 3 11 13 16 17 18 19 20 # 2 3 2 5 7 2 3 11 13 2 17 18 19 20 # 2 3 2 5 7 2 3 11 13 2 17 19 20 # 2 3 2 5 7 2 3 11 13 2 17 19 puts 2*3*2*5*7*2*3*11*13*2*17*19
これでは和の二乗から各数の二乗を素直に引くのと手間が変わらない。
puts (1..100).inject(0){|sum,x| sum += x*(5050-x) }
<追記@2011-03-11>Bignumを使わずに済ませられる効用があったみたい。オーバーフローとか Rubyにはないから気づかなかった。</追記>
力押し。
class Boo
def initialize(interval)
@interval = interval
end
def boo?(t)
t % @interval == 0
end
end
a = []
n = 1
loop {
n += 2
next if a.any?{|boo| boo.boo?(n) }
a.push Boo.new(n)
break if 10000 <= a.length
}
puts n
これはひどい(笑)
#Find 99999 0件
#Find [98]{5} 0件
#Find [987]{5} 3件(99879,79778,98787)
print 9*9*8*7*9
後付けで、8×7 > 9×6 なのは確認したけども……。
素直に書き下しただけ。
1.upto(332){|a|
aa = a*a
b_c = 1000 - a
(a+1).upto(b_c/2){|b|
c = b_c - b
if c*c == aa + b*b
puts "#{a} * #{b} * #{c} = #{a*b*c}"
exit
end
}
}
10分以上かかっちゃってダメ。
最終更新: 2011-01-12T15:28+0900
これまでまれに(4、5回程度)、LMouKe.sysという「Logicool Filter Driver for Mouse Class」ファイルが IRQL_LESS_OR_NOT_EQUALみたいなエラーで BSODを引き起こしていたのでマウスドライバをアップデートするために新しい SetPointをインストールしてみた。気の迷いだった。
まず、インストールに先立ち AppData\Roaming\Logicool\SetPointフォルダをさっくり削除してくれる。SetPoint4系のユーザー設定が消えるのは予告されてたけど、そのフォルダにはリネームしてバックアップしていた設定(user.xml)やら、カスタムリソースファイル(string.xml, KEM.xml, KEMUI.xml)が置いてあった。プログラムではない、ユーザーに属するファイルやフォルダを安易に削除する姿勢はよろしくない。できる限り設定を引き継ごうというプログラミングの一手間が、どれだけの Logitechユーザーが設定にかける時間を節約することか。
MX610に対して、「このバージョンの SetPointでは MX610の一部の機能は利用できない」云々のメッセージが表示された。それって PCの電源(USB給電状態)に連動したスリープ機能だろうか、別立ての HIDデバイス扱いだった IMとメールの光るボタンのことだろうか。
これだけでげんなりしてたんだけど元のバージョン(4.00)に戻した最大の理由は通知領域のアイコンが Logicoolのロゴから愛想のないものに変わっていたこと。
ドライバをアップデートするためだけに、MX610の機能ダウンと SetPointのカスタマイズの手間と、マウスとトラックボールのボタン割り当ての手間((12ボタン+4ボタン)×アプリケーション数)と、しょうもないアイコンを、受け入れられはしない。(そもそも、ユーティリティとドライバは分離しておいてほしいよね)