騰訊2016年実習生募集筆記試験
騰訊2015(2016回)実習生学校は筆記試験を募集します.選択問題以外に、五つの大きな問題があります.この中に三つのアルゴリズム類の問題があります.
第一題:抽選アルゴリズムの実現
タイトル:
一つのデパートで抽選活動が行われます.その中に二つの賞があります.一番目の賞Aが当たる確率は1/6で、二つ目の賞Bが当たる確率は5/6です.C言語コードでこの抽選プログラムを実現します.テーマはXML文書で与えられます.
基本思想:は、乱数 を生成する.乱数対6は余りを取って、得る余りはきっと0、1、2、3、4、5の合計の6つの数の です.はこの6つの数を2つの部分(AとB)に分けます.その中の一つは0だけで、残りの一つは1、2、3、4、5つの項目があります.乱数取後の数を比較して、その中で今回の抽選の結果を判断しました.
ソースコード:
タイトル:
sizeof()関数を使用しない場合、32ビット、64ビットなど、本機の整形に占めるビット数を取り出します.
基本思想:
整数1、ずっと左に移動して、0より小さい時に、それは何位移動しましたか?本機の整形は何位占有しますか?
ソースコード:
http://blog.csdn.net/MichealGeng/article/details/45148995
問題3:C/Sモデルの圧力計算方法の実現
タイトル:
あるC/Sモデルでは、サーバーの最大の処理量は毎秒10000回で、アルゴリズムを設計して、サーバーが正常に動作することを保証します.
基本思想: クライアントは、要求を出すごとに、サーバー側の要求キューが10000に等しい場合、以降の要求はキューに入れず、クライアントに異常フィードバックします. クライアントは、要求を送信するごとに、要求を処理した後、待ち時間を計算し、待ち時間が1秒以上であれば、要求キューの中のすべての要求をサービス端末処理機能モジュールに送信し、待ち行列をクリアし、待ち時間をクリアする .週間で循環を再開します.
ソースコード:
第一題:抽選アルゴリズムの実現
タイトル:
一つのデパートで抽選活動が行われます.その中に二つの賞があります.一番目の賞Aが当たる確率は1/6で、二つ目の賞Bが当たる確率は5/6です.C言語コードでこの抽選プログラムを実現します.テーマはXML文書で与えられます.
基本思想:
ソースコード:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
bool draw() //
{
int ran; //
srand( (unsigned)time( NULL ) ); //
ran = rand()%6; // 6
if(0 == ran) // ran 0
return true; // true
else // ran 0 , false
return false;
}
int main()
{
char ret;//
if(draw()) //
ret='A';// true, A
else // B
ret='B';
printf(" :%c
",ret); //
return 0;
}
第二題:整形長さアルゴリズムの実現タイトル:
sizeof()関数を使用しない場合、32ビット、64ビットなど、本機の整形に占めるビット数を取り出します.
基本思想:
整数1、ずっと左に移動して、0より小さい時に、それは何位移動しましたか?本機の整形は何位占有しますか?
ソースコード:
#include <stdio.h>
int main()
{
int x=1;
int i=1;
while(x>0)
{
x=x<<1;
i++;
}
printf("%d
",i);
return 0;
}
その他の方法http://blog.csdn.net/MichealGeng/article/details/45148995
問題3:C/Sモデルの圧力計算方法の実現
タイトル:
あるC/Sモデルでは、サーバーの最大の処理量は毎秒10000回で、アルゴリズムを設計して、サーバーが正常に動作することを保証します.
基本思想:
ソースコード:
#include<time.h>
double Clock_start = 0; //
double Clock_end = 0; //
int count = 0; //
bool client = false; //
//
void ProtectServer()
{
while(1){ //
if(1000 <= Clock_end) //
{
/* */
Clock_start = clock(); //
count = 0;
}
/* , , client true */
if(client) //
{
if(count<10000) // 10000
{
count++; // +1
/* */
}
else //
{
/* */
}
}
client = false; //
Clock_end = clock() - Clock_start; //
}
}