PEをMathematicaで

Project Eulerに挑戦してみよう

301-400

Project Euler 389 / 正多面体のサイコロ

1つの偏りのない四面体のサイコロを振り,出た目 T を記録する。 T 個の偏りのない六面体のサイコロを振り, 出た目の合計 C を記録する。 C 個の偏りのない八面体のサイコロを振り, 出た目の合計 O を記録する。 O 個の偏りのない十二面体のサイコロを振り, …

Project Euler 307 / チップの欠陥

ある工場では,製造するICチップ n 個あたり k 箇所の欠陥がランダムに生じる。一つのチップにつき複数の欠陥が生じ得る。3箇所以上の欠陥を持つチップができる確率を p(k,n) とおく。 p(3,7) = 0.0204081633...p(20,000, 1,000,000) を小数点以下10桁に丸め…

Project Euler 303 / 小さい桁を持つ倍数

正の整数 n の倍数の中で各位の数字がすべて2以下(10進法)のものの最小値を f(n) とする。 f(2)=2, f(3)=12, f(7)=21, f(42)=210, f(89)=1121222Σ[n=1...100] f(n)/n =1136107 である。Σ[n=1...10000] f(n)/n を求めよ。Problem 303 - Project Euler f(n) …

Project Euler 348 / 平方数と立方数の和

多くの数は平方数と立方数の和として表せる。2通り以上の方法で表せるものもある。いずれも1より大きな平方数と立方数の和としてちょうど4通りの方法で表せる回文数を考えよう。たとえば 5229225 は回文数であり,ちょうど4通りの異なる方法で表せる。 2285^…

Project Euler 346 / 強いレピュニット

7は特別な数である。2進数では111と表せ,6進数では11と表せる。 7(10) = 11(6) = 111(2)別の言い方をすると,7は少なくとも二種類の1より大きい底の記数法でレピュニット(全ての桁が1である自然数)である。上記の特徴を有する正の整数を「強いレピュニッ…

Project Euler 343 / 分数数列

正の整数 k に対して分数 xi/yi による有限数列 ai は次のように定義される。a1 = 1/k ai = (x(i-1)+1)/(y(i-1)-1) [i>1 で約分可能なときは約分する]ai がある整数 n になったとき数列はそこで終了とし,f(k) = n とする。たとえば k = 20 のときは次のよう…

Project Euler 347 / 二つの素数で割り切れる最大の整数

素数2と3の両方のみで割り切れる最大の整数 ≤ 100 は96である。 96 = 2^5*3 2つの異なる素数 p と q に対し,p と q の両方のみで割り切れる最大の正の整数 ≤N を M(p,q,N) とする。そのような正の整数が存在しなければ M(p,q,N) = 0 である。たとえば M(2,3…

Project Euler 301 / Nim

Nimは2人のプレイヤーがいくつかの山に分かれた石を交互にとっていくゲームである。次のようなNimについて考える。 ゲーム開始時点で3つの山がある 各ターンでプレイヤーは任意の1つの山から1つ以上の任意の数の石をとる すべての石がなくなり,石を取ること…

Project Euler 340 / クレイジー関数

整数 a, b, c に対してクレイジー関数 F(n) を次のように定義する。 F(n) = n - c (n > b のとき) F(n) = F(a + F(a + F(a + F(a + n)))) (n ≤ b のとき) また, S(a, b, c) =Σ[n=0,b] F(n) と定義する。たとえば a = 50, b = 2000, c = 40 ならば F(0)=3…

Project Euler 323 / ランダムな整数のビット論理和演算

y0, y1, y2,... をランダムな32ビット符号なし整数からなる数列とする。0≦yi<2^32 で,すべての値が同様に確からしい。数列 xi に対し次の反復が与えられる。 x0 = 0 xi = x(i-1) | y(i-1) (i>0)(| はビット単位のOR演算) すべての i≧N に対し xi = 2^3…

Project Euler 317 / 爆竹

爆竹が地上100mの高さで爆発する。爆竹は爆発すると非常に細かい破片となり,四方八方に初速 20m/s で広がる。破片は空気抵抗を受けず,g=9.81 m/s^2 で一定の重力場において動くものと仮定する。破片が地面に到達するまでに動いた領域の体積(m^3)を小数点以…

Project Euler 357 / 素数生成整数

30の約数について考えよう。1,2,3,5,6,10,15,3030の約数 d はそのすべてにおいて d+30/d の値が素数になる。n のすべての約数 d について d+n/d が素数になるような 10^8 以下の正の整数 n の合計を求めよ。Problem 357 - Project Euler 素数判定は PrimeQ[ …

Project Euler 381 / (素数-k)階乗

素数 p について,1 ≤ k ≤ 5 の k に対し S(p) = (Σ(p-k)!) mod(p) としよう。たとえば p=7 の場合,(7-1)! + (7-2)! + (7-3)! + (7-4)! + (7-5)! = 6! + 5! + 4! + 3! + 2! = 720+120+24+6+2 = 872872 mod(7) = 4 となるので, S(7) = 45 ≤ p 5 ≤ p Problem …