「プロジェクトオイラー問100」の編集履歴(バックアップ)一覧はこちら
「プロジェクトオイラー問100」(2014/03/07 (金) 19:54:07) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
Problem 100 「組み合わせの確率」 †
箱の中に15個の青い円盤と6個の赤い円盤からなる21個の色のついた円盤が入っていて, 無作為に2つ取り出すとき, 青い円盤2つを取り出す確率P(BB)は
P(BB) = (15/21) × (14/20) = 1/2
であることがわかる.
無作為に2つ取り出すとき, 青い円盤2つを取り出す確率がちょうど1/2となるような次の組み合わせは, 箱が85個の青い円盤と35個の赤い円盤からなるときである.
箱の中の円盤の合計が1012 = 1,000,000,000,000を超えるような最初の組み合わせを考える. 箱の中の青い円盤の数を求めよ.
解法
なんとなく直感的に、行列演算で次に大きな数が出てくるのでは?
と考えて。
[[a,b],[c,d]][3,1]+[e,f]=[15,6]
[[a,b],[c,d]][15,6]+[e,f]=[85,35]
本当はもう一つ式が必要だけどこれで条件を満たすa,b,c,d,e,fを適当に試してみたらなんか解けました。
解き方が欠片も理屈だってないので情けない気分。
calc(B,R):-B+R>10^12,
!,
write([b,B,r,R]).
calc(B,R):-
B1 is B*5+2*R-2,
R1 is B*2+R*1-1,
write([B1,R1]),nl,
calc(B1,R1).
main100:-
calc(3,1).
Problem 100 「組み合わせの確率」 †
箱の中に15個の青い円盤と6個の赤い円盤からなる21個の色のついた円盤が入っていて, 無作為に2つ取り出すとき, 青い円盤2つを取り出す確率P(BB)は
P(BB) = (15/21) × (14/20) = 1/2
であることがわかる.
無作為に2つ取り出すとき, 青い円盤2つを取り出す確率がちょうど1/2となるような次の組み合わせは, 箱が85個の青い円盤と35個の赤い円盤からなるときである.
箱の中の円盤の合計が1012 = 1,000,000,000,000を超えるような最初の組み合わせを考える. 箱の中の青い円盤の数を求めよ.
解法
なんとなく直感的に、行列演算で次に大きな数が出てくるのでは?
と考えて。
[[a,b],[c,d]][3,1]+[e,f]=[15,6]
[[a,b],[c,d]][15,6]+[e,f]=[85,35]
本当はもう一つ式が必要だけどこれで条件を満たすa,b,c,d,e,fを適当に試してみたらなんか解けました。
解き方が欠片も理屈だってないので何か情けない気分。
calc(B,R):-B+R>10^12,
!,
write([b,B,r,R]).
calc(B,R):-
B1 is B*5+2*R-2,
R1 is B*2+R*1-1,
write([B1,R1]),nl,
calc(B1,R1).
main100:-
calc(3,1).