数据平均分配的算法有关问题

数据平均分配的算法问题
现在遇到问题了,请朋友们帮忙分析下:

我现在有个map里面存了N个号码段,比如N=4,若是4个号码段(150、151、152、153),其中150号码段 有100条数据; 151号码段有200条 ;152号码段有50条; 153有250条。总共100+200+50+250=600条。

现在想把150的号码平均分配,也就是说6条里面必须含有1条150的号码,151的码号200条 3条里面必须含1条151的号码段,其他的几个号码段也是这样的分配方式。

请求大家提供一个解决思路或者算法。灰常感谢.
算法

------解决方案--------------------
遍历gCsvMap, it->second.size()就是it->first对应的条数,根据条数与总条数的比例,比如150是1:6,结果用vector<CString> vecRt来表示的话,就每隔6次vecRt.push一个150,每隔3次push一个151。如果是2:5的话就每隔5次push 2个。整体来看的话就是,每12个位置,有2个150,4个151,1个152,5个153.