Or to do the full distribution ...
put Njobs div Ndrivers into tMin
put NJobs mod Ndrivers into tExtras
repeat with i = 1 to NDrivers
if i <= tExtras then
allocate tMin+1
else
allocate tMin
end if
end repeat
However, say your drivers are sorted alphabetically, then before long
Andy will realise that he is being allocated more jobs that Zebedee. You
could (sometimes) reverse the order of drivers - but then Mary loses out
on jobs compared to both Andy and Zebedee. Or you could randomize the
order of the drivers - but maybe they're also pre-sorted by location.
Instead, you want to even out the spread of extras across the drivers -
so you need something like
repeat with i = 1 to Ndrivers
if tExtras > (Ndrivers-i)/2 then
allocate tMin+1
subtract 1 from tExtras
else
allocate tMin
end if
end repeat
(which still has a slight bias towards giving jobs to Zebedee - but it's
so slight it will take probably take him years to notice :-)
Alex.
On 17/04/2020 05:28, Jerry Jensen via use-livecode wrote:
Hi Skip,
Forgive me if this is not the answer you seek, or an oversimplification, but
there is an easy way to find if the jobs can be exactly evenly distributed,
with nothing left over:
if (tjobs mod tdrivers) = 0 then // it is evenly distrutable.
.Jerry
On Apr 16, 2020, at 7:41 PM, Skip Kimpel via use-livecode
<use-livecode@lists.runrev.com> wrote:
I have working on creating a loop that would divide the number of jobs by
the number of users and then checking to see to see if it is evenly
divisible but that is kind of where I am stuck. Everything I have tried
thus far has proven to be unsuccessful.
_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode
_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode