SPOJ 15241 - Luis Quest [VPL2_AA]

Source

SPOJ 15241 [VPL2_AA]

問題概要

ある(アメーバのような)生物は,自分の数に比例する早さで増加する.
最初,時間 $0$ では,その生物の数は $P_0$ であった.
時間 $T$ だけ経ったあと,その生物の数は $P_1$ であった.
ちょうど,その生物の数が $P$ となる時刻を求める問題.
(生物の数と言っているが,連続的に増えると考えるので,$P_0, P_1, P$ は重量とでも思ったほうが良いかもしれない.ただし,入力で与えられるのは整数)
答えが存在することは保証されている.

解法

時間 $x$ での生物の数を $f(x)$ とすると,自分の数に比例する早さで増加するから,比例定数を $\beta$ とすると
 $\displaystyle \frac{{\rm d}}{{\rm d}x} f(x) = \beta f(x)$
であり,これを解くと,$\alpha$ を定数として,$f(x) = \alpha {\rm e}^{\beta x}$.
$f(0) = P_0,\ f(T) = P_1$ より,
 $\displaystyle \alpha = P_0,\ \beta = \frac{1}{T} \log \frac{P_1}{P_0}.$
$f(x) = P$ を解くと,
 $\displaystyle x = T \frac{\log (P/P_0)}{\log (P_1/P_0)}$
となる.

C言語によるスパゲッティなソースコード

この部分を表示するには表示権限を持つユーザーでログインする必要があります.


Current time: 2017年07月24日15時49分59秒
Last modified: 2014年04月07日22時19分32秒 (by laycrs)
Tags: Competitive_Programming Sphere_Online_Judge SPOJ_Classical
トップページに戻る

Logged in as: unknown user (not login)

ログイン: