Haga una contabilidad sobre las llamadas ya recibidas y calcule su distribución en las n líneas. Esto le da n valores porcentuales (su distribución ya alcanzada), que se pueden comparar con los n porcentajes que desea lograr. Cada vez que ingrese una nueva llamada, asigne esa llamada a la línea con la desviación más alta del valor objetivo (tenga en cuenta que siempre y cuando no alcance exactamente la distribución dada, siempre hay una línea que tiene muy pocas llamadas hasta ahora, en comparación con la distribución objetivo).
Por ejemplo: después de asignar la primera llamada a la línea 1:
total calls line1 total calls line2 perc.line 1 perc. line 2
1 0 100% 0%
*above 60% *below 40% <- next call to 2
1 1 50% 50%
* below 60%: *above40% next to line1
2 1 66% 33%
*above 60% *below 40% <- next to line 2
2 2 50% 50%
* below 60%: *above40% next to line1
3 2 60% 40%
* both hit the mark: next call arbitrary
4 2 66% 33%
*above 60% *below 40% <- next to line 2
4 3 57.1% 42.85%
*below 60% *above 40% <- next to line 1
...
EDITAR: Este enfoque podría mejorarse aún más al no usar la diferencia absoluta, sino al elegir la línea que minimiza la suma de cuadrados de todas las desviaciones. Eso también le daría un mejor resultado en caso de que alcance los valores objetivo exactamente.