码迷,mamicode.com
首页 > 编程语言 > 详细

加权重随机算法

时间:2015-07-13 16:22:21      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:权重 随机 算法

场景:有N个合作方,每个合作方都有一定的权重,按权重随机选择一个合作方


typedef struct
{
string k;//partner_id
string v;//value
string m;//0:number 1:ratio
}Bookpartner_count_listInfo;


string GetRandNumRatio( vector<Bookpartner_count_listInfo> arpartner_count_list)
{
int weight = 0;
int user = 0;
Bookpartner_count_listInfo bp_cunt_list_temp[128];
for( vector<Bookpartner_count_listInfo>::iterator it = arpartner_count_list.begin(); it < arpartner_count_list.end(); it++)
{
weight += atoi(it->v.c_str());


for( int i = 0; i < atoi( it->v.c_str()); i++ )
{
*(bp_cunt_list_temp + weight - i) = *it;
}
}


struct timeval tv;

gettimeofday(&tv, NULL);
srand(tv.tv_usec);


user = rand() % weight;
Bookpartner_count_listInfo bk_pcl_temp = bp_cunt_list_temp[user];


return bk_pcl_temp.k;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

加权重随机算法

标签:权重 随机 算法

原文地址:http://blog.csdn.net/ai2000ai/article/details/46861545

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!