【shopee筆試】2019-8-10

選擇題

別的博客

設一個有偏的硬幣,拋了100次,出現1次人頭,99次字。問用最大似然估計(ML)和最小均方誤差(LSE)估計出現人頭的概率哪個大?

LSE
設使用LSE估計,出現人頭的概率爲θθ, 則出現字的概率爲1−θ1−θ。 
已知觀測量爲:(觀測到的)出現人頭的概率爲11001100, (觀測到的)出現字的概率爲9910099100,則由最小二乘估計: 
Q(θ)=argminθ∑1001(θ−θ^)2 =argminθ(1100−θ)2+[99100−(1−θ)]2∗99Q(θ)=argminθ∑1100(θ−θ^)2 =argminθ(1100−θ)2+[99100−(1−θ)]2∗99 
令∂Q(θ)∂θ=0∂Q(θ)∂θ=0,解得θ=1100θ=1100;

ML
設使用ML估計,所以x服從伯努利分佈,x∼B(朝上,θ)x∼B(朝上,θ), 
則概率密度函數爲: 
P(x|θ)={θ,1−θ,if x 人頭朝上if x 字朝上
P(x|θ)={θ,if x 人頭朝上1−θ,if x 字朝上

則連續100次試驗的似然函數爲: 
P(x1,x2,..x100|θ)=C1100θ1∗(1−θ)99=100∗θ1∗(1−θ)99P(x1,x2,..x100|θ)=C1001θ1∗(1−θ)99=100∗θ1∗(1−θ)99 
最大化似然函數,則θθ至少爲駐點,對似然函數取對數並求偏導: 
lnP(x1,x2,..x100|θ)=ln100+lnθ+99ln(1−θ)ln⁡P(x1,x2,..x100|θ)=ln⁡100+ln⁡θ+99ln⁡(1−θ) 
對θθ求偏導爲0,得到: 
∂lnP(x1,x2,..x100|θ)∂θ=1θ−991−θ=0∂ln⁡P(x1,x2,..x100|θ)∂θ=1θ−991−θ=0, 解得θ=1100.θ=1100.
兩者雖然得到的估計值是一樣的,但是原理完全不同,要對他們的推導過程非常清楚。
 

編程題

一個正整數N的因子中可能存在若干連續的數字。例如630可以分解爲3*5*6*7,其中5、6、7就是3個連續的數字。給定任一正整數N,要求編寫程序求出最長連續因子的個數,並輸出最小的連續因子序列。

輸入樣例:
630
輸出樣例:
3
5*6*7

#include <iostream>
#include <cmath>
using namespace std;
long int num, temp;
int main(){
    cin >> num;
    int first = 0, len = 0, maxn = sqrt(num) + 1;
    for (int i = 2; i <= maxn; i++) {
        int j; 
        temp = 1;
        for (j = i; j <= maxn; j++) {
            temp *= j;
            if (num % temp != 0) break;
        }
        if (j - i > len) {
            len = j - i;
            first = i;
        }
    }
    if (first == 0) {
        cout << 1 << endl << num;
    } else {
        cout << len << endl;
        for (int i = 0; i < len; i++) {
            cout << first + i;
            if (i != len - 1) cout << '*';
        }
    }
    return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章