2017網易游戲雷火盤古實習生招聘筆試真題-賽馬

題目

在一條無限長的跑道上,有N匹馬在不同的位置上出發開始賽馬。當開始賽馬比賽后,所有的馬開始以自己的速度一直勻速前進。每匹馬的速度都不一樣,且全部是同樣的均勻隨機分布。在比賽中當某匹馬追上了前面的某匹馬時,被追上的馬就出局。 請問按以上的規則比賽無限長的時間后,賽道上剩余的馬匹數量的數學期望是多少

輸入描述

每個測試輸入包含1個測試用例
輸入只有一行,一個正整數N
1 <= N <= 1000

輸出描述

輸出一個浮點數,精確到小數點后四位數字,表示剩余馬匹數量的數學期望

輸入例子

1
2

輸出例子

1.0000
1.5000

問題分析

條件

  1. 賽道無限長!!!
  2. 賽道無限長!!!
  3. 賽道無限長!!!
    重要的事情先說三遍
  4. 馬被追上就出局

馬匹的速度不同,所以假設為a1>a2>a3......>an
a1一定能活,概率為1
a2在a1之后才能活,a2有兩種情況:a1之前,a1之后。概率為1/2
a2在a1,a2之后才能活,a3有三種情況: a1之前,a1,a2之間,a2之后。概率為1/3
...
ak在a1....ak-1之后才能活。k種情況,概率為1/k
...
an在a1....an-1之后才能活。n種情況,概率為1/n
即總的期望為1 + 1/2 + 1/3 + .... 1/k + ...1/n,歸納得f(n) = f(n-1) + 1/n

代碼

#include <iostream>

using namespace std;

int main() {
    int n;
    cin >> n;
    double sum = 0.0;
    for (int i = 1; i <= n; i++) {
        sum = sum + 1.0 / i;
    }
    printf("%.4lf\n", sum);
    return 0;
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容