2016-08-06 35 views
-1

ich die Website gesucht haben, aber bekommen etwas im Zusammenhang mit nicht, was ich im Sinn haben.wie kann man ziemlich verteilen Arbeit zwischen den Arbeitern, Algorithmus Design

Das Problem ist, dass ich sage, ich habe 10 Personen, denen ich ein Projekt zuweisen kann, Projektwert kann variieren, keine Obergrenze oder Untergrenze, jedes Mal, wenn ich ein neues Projekt bekomme würde ich es einem Arbeiter gerecht zuweisen, Was ich meine, ist, dass ich möchte, dass jeder in der Nähe des durchschnittlichen Einkommens etwas verdient und bleibt.

ein Beispiel wäre, zuerst jeder hat den Zähler beginnend von 0 und sie werden zufällig ausgewählt, bis niemand bei 0 ist. Jetzt auf ihr Glück wird jemand auf 10 sein und jemand mit dem max Wert wäre sagen 200 jetzt was ich will ist, dass das nächste Mal, wenn ich das Projekt, unabhängig von dem Wert, wen sollte ich es geben, so dass nach diesen Regeln jeder kommt in der Nähe des durchschnittlichen Einkommens? Ich hoffe ich habe mich selbst klar gemacht.

, wo soll ich anfangen, welche Ressourcen sollte ich in aussehen? Oder welchen mathematischen Bereich soll ich für diese Antwort untersuchen? Ich brauche einen Algorithmusentwurf für diese Idee.

Antwort

0
var workers=[0,0]; 
//assume two workers 
function declarejob(count){ 
smallest=100000000000000; 
worker; 
for(i=0;i<workers.length;i++){ 
if(workers[i]<smallest){ 
smallest=workers[i]; 
worker=i; 
} 
} 
workers[worker]=workers[worker]+count; 
Return worker; 
} 

Verwendung wie folgt aus:

alert(declarejob(200)); 
//Will alert 0 for the first worker 
alert(declarejob(100)); 
//will alert 1 for the second worker 
alert(declarejob(100)); 
//will alert 1