1. 程式人生 > >搜狐暢遊2018筆試總結(資料探勘方向)

搜狐暢遊2018筆試總結(資料探勘方向)

剛做完回憶一波題目,記得不太全了,設計概率論、基礎演算法,簡單程式設計

一、選擇題

1.選擇題分為單選和多選,我主要記錄一下當時覺得比較棘手的

2.第一部分單選全是關於遊戲的,大概是我沒理解這是做遊戲的=_=

二、填空題

1.有一個人下8級的樓梯,他一次可以選擇走一個臺階或者兩個臺階,請問這個人有多少種方式下樓 【34】

2.設隨機變數的X的概率密度函式為F(x) = 0.5*g(x) + 0.5g((x-4)/2) ,其中g(x)為標準正態分佈的概率密度函式,求期望E(X)。 【1.5】 ==我想的是 0.5 + 1 如果我錯了,大佬們指點一下~

3.假設要基於一個詞彙量為V 的詞典訓練skip-gram詞向量模型,詞向量的維度是D,若採用福彩楊演算法提升訓練,負樣本個數為N-1,則在每次更新輸出向量時需要引數數量是(只考慮神經元權重,不考慮偏置)【D】我感覺自己做錯了====

4.二叉樹排列,前序 :ABCDEFGHIJ, 中序排列為: CBAEFD

則後序排列為【CBFEIJHGDA】

三、簡答題

1.對玩家的遊戲評論進行情感分析挖掘,問你如何設計情感挖掘框架模型?

這個我實習做過一個相關的課題

2.介紹CNN對影象如何進行處理和分類,為什麼CNN可以進行一些自然語言處理(如文字分類)?

文字或者句子都是一個矩陣,也可以看做是一個影象。

四、程式設計題

1.老師給小朋友分蘋果

#include <iostream>
#include <vector>
#include <numeric>
#include <limits>
#include<string>
#include<map>
#include<algorithm>

using namespace std; 
int main() {
	int M;        // M個小朋友
 
	while (cin >> M) {
		if (M <= 0) 
            break;
 
		int sum = 0;
		vector<int> vec(M);
		for (int i = 0; i < M; ++i) {
			cin >> vec[i];
			sum += vec[i];
		}
		if (sum % M != 0) {
			cout << -1 << endl;
			continue;
		}
 
		int avg = sum / M;
		int result = 0;
		for (int i = 0; i < M; ++i) {
			if (vec[i] < avg) {
				if ((avg - vec[i]) % 2 != 0) {
					cout << -1 << endl;
					continue;
				}
			}
			else if (vec[i] >= avg) {
                if ( ( vec[i] - avg ) % 2 != 0 ) {
					cout << -1 << endl;
					continue;
                }
				else result += (vec[i] - avg) / 2;
			}
		}
 
		cout << result << endl;
	}
 
	return 0;
}

2.學數學,老師說一個數,兩個同學分別說一個素數,相加等於老師說的數

#include <iostream>
#include <vector>
#include <numeric>
#include <limits>
#include<string>
#include<map>
#include<algorithm>

using namespace std;
bool isPrime(int n)
{	
	float n_sqrt;
	if (n == 2 || n == 3) 
        return true;
	if (n % 6 != 1 && n % 6 != 5) 
        return false;
	n_sqrt = floor(sqrt((float)n));
	for (int i = 5; i <= n_sqrt; i += 6)
	{
		if (n % (i) == 0 | n % (i + 2) == 0) 
            return false;
	}
	return true;
}
int main() {	
	int n, res;
	cin >> n;
	res = 0;
	for (int i = 2; i <= n / 2; i++)
	{
		if (isPrime(i) && isPrime(n - i))
			res++;
	}
	cout << res << endl;
	system("pause");
	return 0;
}