首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

一道调度有关问题

2012-05-01 
一道调度问题某电站24小时需要员工站岗,已知每个员工能够持续工作8个小时,而电站某一时段需要最少的员工数

一道调度问题
某电站24小时需要员工站岗,已知每个员工能够持续工作8个小时,而电站某一时段需要最少的员工数目如下:

0-4 :5人。
4-8 :10人。
8-12 :7人。
12-16 :6人。
16-20 :8人。
20-24 :4人。

求该电站应如何安排才能使一天内所派员工人数最少?

[解决办法]
如果每人每天只工作8小时的话则需要20人。算法如下:
A[6]存放规定站岗人数5,10,7,6,8,4,A从1开始。
令f(i)表示i*4到i*4+4时间段需要增加的人数,g(i)表示在上一时间段工作且能继续工作的人数
则有f(i+1)=A[i+1]+g(i),因为工人可以连续工作两个时间段,则有f(i)=g(i)
所以f(i+1)=A[i+1]-f(i),f(1)=5,把A[i]这个代入,可得5,5,2,4,4,0.
所以需要20个人。

[解决办法]
是f(i+1)=A[i+1]-g(i)
打错了。。
[解决办法]
好难啊。
[解决办法]
是不是叫作 动态规划

[解决办法]
是很晕。能解释下就好了
[解决办法]
是很晕。能解释下就好了
[解决办法]

[解决办法]
我是新手啊~~刚自学了十多天,试做一做,写得不好的地方大家不要介意啊~~~
class diaodu
{
public static void main(String [] args)
{
int[] arr={5,10,7,6,8,4};
haha.diao(arr);
}
}
class haha
{
public static void diao(int[] arr)
{
int sum=0;int ren=0,y=0;
for(int x=0;x<24 && y<arr.length;x=x+4)
{
ren=arr[y++]-ren;
sum+=ren;
System.out.println(x+"-"+(x+4)+"时段需要增加"+ren);
}
System.out.println("一天总共需要"+sum+"人");
}
}

[解决办法]
说实话这道题要写代码有点困难,不过他们那么说答案,我知道有种答案刚好人不多不少,如果换了数据怎么整,还要是写代码实现的
难点1:有没有起始点,如果有起始好算一点,大不了每个起始点写一遍。如果没有起始点,就是说随意穿插,很难入手。
难点2:每个人要连续工作两个时区,怎么建模。有必要的话,时区也要建个实体类。不知你这程序是要这种功能?
[解决办法]
285*4+10*4+7*4+6*4+8*4+4*4=160小时人,每人每天8小时,那么最少就是20人 
 
[解决办法]

Java code
光这道题就有两种情况5-5                            --5-5----2-2------4-4--------4-4------------5-10-7-6-8-43-3--7-7------6-6--------2-2----------2-2//接上面-------------5-10-7-6-8-4 

热点排行
Bad Request.