Hatena::Grouptopcoder

TopCoderの問題を解く

解いた問題の一覧表

2009-07-05

FixedPointTheorem

| 19:46

問題文

237.01 -> 248.06 / 250

問題文の通りに、200,001から201,000回目のFの値の範囲(higest value - lowest value)を求めればいい。

class FixedPointTheorem {
public:
    double cycleRange(double R) {
        double X = .25;
        for (int i = 0; i < 200000; i++)
            X = F(R, X);
        vector<double> values(1000);
        for (int i = 0; i < 1000; i++) {
            X = F(R, X);
            values[i] = X;
        }
        return *max_element(values.begin(), values.end())
                - *min_element(values.begin(), values.end());
    }
private:
    double F(const double R, const double X) {
        return R * X * (1-X);
    }
};