Exemplo n.º 1
0
void Zipf::CreateZipfList(vector<int> &filelist)
{
	vector<double> probability;
	CreateZipfDistribution(probability);
	filelist.clear();
	for(int i = 0; i < m_clientnum; ++i) {
		double temp = Randomf(0, 1);
		double sum = 0.0;
		for(int j = m_resourcenum - 1; j >= 0 ; --j) {
			sum += probability.at(j);
			if (sum > temp) {
				filelist.push_back(i);
				break;
			}
		}
	}
}
Exemplo n.º 2
0
ModelAssemble::ModelAssemble(int fileNum,double thelta,double lambda,
		double backZeta,double backSigma,double forZeta,double forSigma,int maxClientNum,
		int playToPlay,int playToPause,int playToForward,int playToBackward,
		int playToStop,bool isStartTogether,int hotPlaceNums){
	mIsStartTogether = isStartTogether;

	mFileNum = fileNum;
	mThelta = thelta / 1000.0;
	mLambda = lambda / 1000.0;
	mBackZeta = backZeta / 1000.0;
	mBackSigma = backSigma / 1000.0;
	mForZeta = forZeta / 1000.0;
	mForSigma = forSigma / 1000.0;
	mHotPlaceNums = hotPlaceNums;
	mMaxClientNum = maxClientNum;

	MMBlock tmpBlock;
	tmpBlock.status = PLAY;
	tmpBlock.prob = playToPlay;
	mMMVect.push_back(tmpBlock);

	tmpBlock.status = PAUSE;
	tmpBlock.prob = playToPause;
	mMMVect.push_back(tmpBlock);

	tmpBlock.status = FORWARD;
	tmpBlock.prob = playToForward;
	mMMVect.push_back(tmpBlock);

	tmpBlock.status = BACKWARD;
	tmpBlock.prob = playToBackward;
	mMMVect.push_back(tmpBlock);

	tmpBlock.status = STOP;
	tmpBlock.prob = playToStop;
	mMMVect.push_back(tmpBlock);

	GslInit();
	CreateStartTime();
	CreateZipfDistribution();
//	LOG_INFO("mMaxClientNum = " << mMaxClientNum);
}