当前位置: 代码迷 >> Java相关 >> 求1互斥算法
  详细解决方案

求1互斥算法

热度:99   发布时间:2016-04-22 20:07:42.0
求一互斥算法
有N个用户,有一个A(权重不定),B(权重不定),C(权重不定),D(权重不定),E(权重不定)个渠道;
当用户 AO 进来时,选取一个渠道进入(如C渠道);用户BO进来时选取一个通道(如E渠道);
要求每次AO进来时都选取C渠道,而每次BO进来时都选取E渠道
如单独比对各个渠道时,if(AO,A) = false,if(AO,B) = false,if(AO,C) = true,if(AO,D) = false,if(AO,E) = false
======================================================================

------解决思路----------------------
对账号做hash,然后根据转盘赌算法决定分配到哪个通道。
比如A比重30,B,C,D,E都是20,那么总权重为110
令 x = AO.hashcode()%110 + 1
if  1 <= x <= 30: 进入A
if  31 <= x <= 50: 进入B
....
  相关解决方案