1. 程式人生 > >hdu5984 Pocky(猜數學期望公式)

hdu5984 Pocky(猜數學期望公式)

題目連結:

題目大意:

對於一根長度為 L 的木棍,每次等概率的取一個點將其分成兩半,然後吃掉左邊一半,直到剩下的長度小於 d,計算需要吃(分割)次數的數學期望

題目思路:

顯然,如果 L/d 相同,則結果必定相同

根據 ln2 = 0.693147 可以推測出結果應該是 ln(L/d) + 1

再單獨考慮不需要分割的情況( d>=L )

(居然還可以這樣,真的是給跪了)

程式碼:

#include <bits/stdc++.h>
using namespace std;
int main(){
    int t;
    scanf("%d", &t);
    while (t--){
        double d, l;
        scanf("%lf%lf", &d, &l);
        if (d <= l){
            printf("0.000000\n");
            continue;
        }
        printf("%.6lf\n", 1 + log(d / l));
    }
}