在N个不同的操作数上分配和S.

时间:2009-06-01 13:12:03

标签: algorithm math

我正在试图找出一种在N个不同操作数(b1,b2,..,bn)上分配和S的方法,其中b1,b2,... bn是固定比率,这是确定的另一组操作数(a1,a2,... an)

考虑以下情况:

候选人A获得来自N个选区的Ta票,共有{a1, a2, a3 .. aN}

候选人B共获得TbTaTb无关,这意味着Ta < TbTa = Tb&amp; Ta > Tb来自M个选区(IMP:M <= N),分布未知。

Tb投票分配给选区b1,b2,b3 ... bM的最佳方法是什么,它们以与a1,a2,a3 ... aN相同的比例分配。

有些案例:

1.Ideal

Ta = 20 (8,6,4,2) Tb = 10

然后我们得到:Tb(4,3,2,1)

2.不太理想

Ta = 20(8 ,6, 4, 1 , 1) Tb = 10

然后我们得到(4,3,2,1,0)实际上意味着(4,3,2,1)(M

2 个答案:

答案 0 :(得分:1)

一个简单的解决方案:

br = ar *(Tb / Ta)

对于复杂范围或不匹配的Ta和Tb

,它实际上不起作用

喜欢,Ta = 22(5,5,4,2,1,1,1,1,1,1) 和Tb = 7

更新: 我遵循以下规则来获得最佳解决方案:

  1. 保持比率为(Tb / Ta)并继续分发,直至用完为止。
  2. 无论何时你绕圈,向上,即3.24 - &gt; 4和3.68也 - &gt; 4
  3. e.g。这里:b1 = 5 * 7/22 =&gt; 2,b2 = 5 * 7/22 = 2,b3 = 4 * 7/22 = 2,b4 = 1(因为只剩下一个)
  4. 所以我们有Tb = 7(2,2,2,1)哪个最接近(5,5,4,2)

答案 1 :(得分:1)

你的a_i总是排序吗?假设是这种情况,一种开始的方法是从a_i的第一个值开始分配b_i。