ウイルス配列式の計算~the cat in the hat uva 107


Kが帽子に編み出された回数を仮定すると,Mは最後の作業猫数,Hは最後の高さである.
題意によって次のようになります.
(1/(n+1)^K=1とn^K=M;①
連立はKを消して、あります
 ln(H)/ln(M) == ln(N+1)/ln(N);
次に、列挙方法で上記の条件を満たすNを見つけ、コードは以下の通りである.
 while (fabs(log(N)/log(N+1) -log(M)/log(H)) >1e-10)
 	++N;

①の2つの式からKの値が自然に算出できるようになった~,
K = (int)(0.5+log(H)/log(N+1)); 
次に、高さを求めます.等比数列の和を求める式です.
int(0.5+ (1-pow(N/(N+1),K+1)) * (N+1) *H ) ;
この問題はmath関数の使用に要求が高く,いくつかの運用を学ぶことができる.