2011-01-08

シルヴァーマン 「はじめての数論」第3版 第38章練習問題2

38.8
(a) n10/2n=exp{-n log2[1-(10/log2)log n/n]}→0 (n→∞)。
(b) 2n/n!=∏1≤k≤ n 2/k<2·1·(2/3)n-2→0 (n→∞)。
(c) n!/2n2=∏1≤k≤ n k/2n<nn/2n2=exp[-n2(log2- log n/n)]→0 (n→∞)。
(d) 定義式によりf(n)=ο(1)ならlim n→∞f(n)=0。したがって(i)と(iii)がο(1)。

38.9
(a)
(i) |n2-n|=|n(n-1)|≥n (n≥2)なのでn2-n=Ω(n)
(ii) n!/2n>(1/2)·1·(3/2)n-2≥(1/2)·1 (n≥3)なのでn!=Ω(2n)。
(iii) (5n-3n)/2n=1+nC1·(3/2)+...+nCn-1·(3/2)n-1≥1+nC1+...+nCn-1=2n-1≥(1/2)·2n (n≥1)
なので(5n-3n)/2n=Ω(2n)。

(b)
ある正定数C1, C2が存在して|f(n)|≥C1|h(n)|, |h(n)|≥C2|k(n)|だから
|f(n)|≥C1C2|k(n)|なのでf(n)=Ω(k(n))。

(c)
ある正定数Cが存在して|f(n)|≥C|h(n)|なので|h(n)|≤(1/C)|f(n)|だから
h(n)=O(f(n))となり成り立つ。

(d)
|n3-3n2+7|/nd=n3-d-3n2-d +7n-d ≥C>0が
十分大きな全てのnについて成り立つために
3-d≥0でなければならないからd=0,1,2,3。

(e)
d≤0で√n=Ω(log2 n)d)は明らかに成り立つ。d>0に対しては、
√n/(log2 n)d=exp{(1/2)log n[1-2d log(log n)/log n]+d log(log2)}
log(log n)/log n→0 (n→∞)だから、任意に小さい正定数ε/dに対しあるn0が存在して、
n≥n0なる全てのnに対しlog(log n)/log n<ε/d
となる。したがってn≥n0なる全てのnに対し√n/(log2 n)d>(log2)dn1/2-ε>(log2)dだから、
d>0に対し√n=Ω(log2 n)d)は成り立つ。
したがって、すべての整数dについて成り立つ。

(f)
f(n)=Ω(√n)と仮定すると、n≥n0なる全てのnに対し
|n sin n/√n|=|√n sin n|≥C (1)となる自然数n0と正定数Cが存在する。
一方、定理31.2により、|n-2πm|<1/mの整数解(n,m)は無数に存在する。
n≥n0となる解(n,m)を十分大きくとると|sin 1/m|<1/m、
またn/m-2π≤|n/m-2π|<1/m2よりn/m<2π+1/m2で、
さらにこの二次不等式からm>n/(4π)なので、
C≤|√n sin n|=|√n sin(n-2πm)|<√n/m
=(1/√m)√(n/m)< (1/√m)√(2π+1/m2)<√(3π/m)<√(12π2/n)。
これよりn<12π2/C2となるから、n≥n0なる全てのnに対し(1)が成り立つことと矛盾する。
したがって、f(n)=Ω(√n)でない。



38.10
(a)
|log(1+1/n)|=|1/n-1/(2n2)+1/(3n3)-...|=1/n|1-1/(2n)+ 1/(3n2)-...|
≤1/n[1+1/(2n)+1/(3n2)+...]<1/n(1+1/n+ 1/n2+...)=1/(n-1)≤2/n (n≥2)。
また、
|log(1+1/n)|=|1/n-1/(2n2)+1/(3n3)-...|≥1/n|1-1/n[-1/2+1/(3n)-...]|
≥1/n{1-1/n[1/2+1/(3n)+1/(4n2)...]}>1/n{1-1/n[1/2+1/(2n)+1/(2n2)+...]}
=(1/n)[1-1/(2n-2)]≥1/2n (n≥2)。
したがって1/2n<|log(1+1/n)|<2/n (n≥2)だからlog(1+1/n)=Θ(1/n)

(b)
|log |n3-n2+3|-3log n|=|log|1-1/n+3/n3||<log(1+2/n)<4/n (n≥1)。
また|log|1-1/n+3/n3||>log(1+1/2n)>1/4n (n≥3)
以上により|log |n3-n2+3|=3log n+Θ(1/n)

(c)
f(n)=a0nd+a1nd-1+...+adとすると、log|f(n)|-d log n=log|a0+a1/n+...+ad/nd|で、
十分大きなnに対し支配的な項は1/nに比例する項なので、
(a)によりlog|f(n)|=d log n+Θ(1/n)。
・・・というのが大まかな話だが、細かい不等式の計算がややこしい・・・。

(d)
...

(e)
f(n)=Θ(h(n))すなわち正定数C1, C2, n0が存在して全てのn≥n0に対し
C1|h(n)|≤| f(n)|≤C2|h(n)|なら、(1/C2)|f(n)|≤|h(n)|≤(1/C1)|f(n)|なので、
h(n)=Θ(f(n))となり必要条件である。

シルヴァーマン 「はじめての数論」第3版 第38章練習問題1

38.1
(a)
あるn1, n2, C1, C2が存在して、全てのn≥ n1に対し|f1(n)-g1(n)| ≤ C1|h(n)|、
全てのn≥ n2に対し|f2(n)-g2(n)|≤C2|h(n)|であるから、全てのn≥max(n1, n2)に対し、
| f1(n) +f2(n)-g1(n)-g2(n)|≤|f1(n)-g1(n)|+|f2(n)-g2(n)|≤(C1+C2)|h(n)|
となるので、f1(n) +f2(n)=g1(n)+g2(n)+O(h(n))

(b)
(a)と同様にして、全てのn≥max(n1, n2)に対し、
| af1(n) +bf2(n)-ag1(n)-bg2(n)|≤(aC1+bC2)|h(n)|だから、
af1(n) +bf2(n)=ag1(n)+bg2(n)+O(h(n))

(c)
あるn0, Cが存在して、全てのn≥ n0に対し|f(n)-g(n)| ≤ C|h(n)|。
両辺に|k(n)|をかけて、|k(n)f(n)-k(n)g(n)| ≤ C|k(n)h(n)|なので、
k(n)f(n)=k(n)g(n)+O(k(n)h(n))。

38.2
あるn1, n2, C1, C2>0が存在して、全てのn≥ n1に対し|f1(n)-g1(n)| ≤ C1|h1(n)|、
全てのn≥ n2に対し|f2(n)-g2(n)|≤C2|h2(n)|であるから、全てのn≥max(n1, n2)に対し、
| f1(n) +f2(n)-g1(n)-g2(n)|≤|f1(n)-g1(n)|+|f2(n)-g2(n)|
≤C1|h1(n)|+C2|h2(n)|≤max(C1, C2)(|h1(n)|+|h2(n)|)≤2max(C1, C2)max(|h1(n)|,|h2(n)|)
これよりf1(n) +f2(n)=g1(n)+g2(n)+O(max(|h1(n)|,|h2(n)|))。
O(max(|h1(n)|,|h2(n)|))の中の絶対値は、外しちゃったらおかしいので多分誤植かな。

38.3
(a) n≥1に対し|f(n)|=3/2+37/[2(2n-1)]≤20なのでO(1)。
(b) n≥1に対し|f(n)|=3n/2+3/4+37/[4(2n-1)]≤ 3n/2+37/2≤20nなのでO(n)。
(c) n≥1に対し|f(n)|=|(3+17/n)/(2n-1/n)| ≤20/nなのでO(1/n)。
(d) n≥1に対し|f(n)|=|cos n|≤1なのでO(1)。
(e) |x|≤1/2に対し|sin x|≥|x|-(|x|3+|x|5+|x|7+...)=|x|-|x|2/(1-|x|2) ≥|x|-4/3より、
n≥2に対し|f(n)|=|sin(1/n)|-1 ≤|1/n-(1/(3!n3)-1/(5!n5)+...)|-1≤|1/n-1/n3(1-1/n2+1/n4)|-1
=|1/n-1/(n+n3)|-1=n|1+1/n2|≤2nなのでO(n)。
(f) (e)より|f(n)|=|n sin(1/n)|-1≤2なのでO(1)。

38.4
∫n≤x≤ n+1 √(x-1) dx=2n2/3/3 [1-(1-1/n)3/2]
ここで(1-x)3/2=1-3x/2+3[(1/2!)(x/2)2+(1/3!)(x/2)3+(3/4!)(x/2)4+(3·5/4!)(x/2)5+...]>1-3x/2
より2n3/2/3 [1-(1-1/n)3/2]< n1/2 (1)
また、q(n)=∫n≤x≤ n+1 √x dx-√n=2/3 [(n+1)3/2-n3/2]-n1/2 (2)
とおくと、q(1)≈0.22>0, q(n)→0 (n→∞), dq/dn=(n+1)1/2-(2n+1)/2n1/2<0
だから、n≥1に対しq(n)>0 (3)。

(1)(2)(3)により∫n≤x≤ n+1 √(x-1) dx<n1/2<∫n≤x≤ n+1 √x dx。
この式の1からnまでの総和をとると∫0≤x≤ n√x dx<√1+√2+...+√n<∫1≤x≤ n+1 √x dxで、
∫0≤x≤ n√x dxを辺々引けば0<√1+√2+...+√n-∫0≤x≤ n√x dx=√1+√2+...+√n-2n3/2/3
<2/3 [(n+1)3/2-1]-2n3/2/3<(2/3)[ (n+1)3/2-n3/2] (4)
Cを定数としてp(n)=2/3 [(n+1)3/2-n3/2]-Cn1/2とすれば、
十分大きなC(例えばC>2)と、十分大きな全てのnに対しp(n)<0となるので、
(4)は、0<√1+√2+...+√n-2n3/2/3<Cn1/2
となる。したがって、√1+√2+...+√n=(2/3)n3/2+O(n1/2)。

38.5
(a)
n≥2に対しq(n)=1/n-∫n≤x≤ n+1 1/x dx=1/n-log(1+1/n) (1)
とおくと、q(2)≈0.41>0, q(n)→0 (n→∞), dq/dn=1/[n(n+1)]-1/n2<0
だから、n≥2に対しq(n)>0 (2)。
また、∫n≤x≤ n+1 1/(x-1) dx=-log(1-1/n)=1/n+1/2n2+1/3n3+...>1/n (3)。

(1)(2)(3)によりn≥2に対し∫n≤x≤ n+1 1/x dx<1/n<∫n≤x≤ n+1 1/(x-1) dx。
この式の2からnまでの総和をとると、log[(n+1)/2]<1/2+1/3...+1/n<log nで、
Hn=1+1/2+1/3...+1/nとおくと、
辺々に1を足し、Hn=1+1/2+1/3...+1/nとおくとlog[(n+1)e/2]< Hn <log ne
log[(n+1)e/2] を辺々引けば
0< Hn - log[(n+1)e/2]<log2-log(1+1/n)<log2 (n≥2) (4)となる。

さらに、0<Hn - log[(n+1)e/2]= Hn-log n-log(1+1/n)-log e/2<Hn-log nだから、
(4)に辺々log(1+1/n)+log e/2を足して(0<) log(1+1/n)+log e/2<Hn -log n
<log 2+ log(1+1/n)+log e/2=1+log(1+1/n) ≤1+log3/2となるので、
Hn = log n+O(1)。

(b)
...

38.6
(a)
ボブは一度推測して外れた数はその後選択しないものとすれば、
最悪の場合、n-2回目までの推測はすべて外れ、n-1回目でアリスの選んだ数が確定する
(n-1回目が外れたら、それまで一度も選択しなかった数がアリスの選んだ数)。
したがってG(n)=n-1<nなのでG(n)=O(n)。

(b)
G(n)=O(√n)とすると、十分大きい全てのnに対し定数Cが存在してG(n)=C√n となる。
一方G(n)=O(n)なので、十分大きい全てのnに対し定数Dが存在して
G(n)=Dn=(D/C) √n ·C√n なので、十分大きい全てのnと全ての定数Cに対し
G(n)> C√nとなり矛盾。

(c)
h(n)はnと同等か高位の無限大である。

(d)
大小の情報があれば、二分探索アルゴリズムを用いることができる。
二分探索では2G(n)>nとなる最小のG(n)が最大の推測回数だから、
G(n)=O(log2 n)。

38.7
(a)
√n以下の約数を調べれば十分であるから、約数を見つけるステップ数は√n
に比例するのでF(n)=O(√n)。

(b)
√nまでの素数の数は定理13.1(素数定理)により√n /log√n=2√n/log n程度なので、
F(n)=O(√n/log n)。

(c)
x=log nとおくと、
与式=lim x→∞ exp[c√(x log x)-x/2]= lim x→∞ exp[-x/2 (1-2c√(log x/x)]=0
√nの代わりにnεに変えても同様。

(d)
x=log nとおくと、x→∞で
c'[x(log x)2]1/3-c[x(log x)]1/2
=-c[x(log x)]1/2[1-(c'/c)(log x/x)1/6] →-∞
だから、lim n→∞ M(n)/L(n)=0。