📄 sys_resource.java
字号:
package design;
public class Sys_resource {
int[] resourceHave;
int[] resourceUse;
int[] resourceFree;
int[] resourceMayFree;
public Sys_resource() {
resourceHave=new int[4];
resourceUse=new int[4];
resourceFree=new int[4];
resourceMayFree=new int[4];
}
public Sys_resource(int[] a){
resourceHave=new int[a.length];
resourceUse=new int[a.length];
resourceFree=new int[a.length];
resourceMayFree=new int[a.length];
for(int i=1;i<=a.length-1;i++)
resourceMayFree[i]=resourceFree[i]=resourceHave[i]=a[i];
}
public boolean canBeBestDistribute(int[] a){
for(int i=1;i<=a.length-1;i++)
if(a[i]>resourceMayFree[i])
return false;
return true;
}
public int[] bestDistrubire(int[] a){ //尽力分配
int[] temp=new int[a.length];
for(int i=1;i<=a.length-1;i++)
temp[i]=Math.min(a[i],resourceFree[i]);
for(int i=1;i<=resourceHave.length-1;i++){
resourceFree[i]-=temp[i];
resourceMayFree[i]-=temp[i];
resourceUse[i]+=temp[i];
}
return temp;
}
public boolean canBeAddDistribute(int[] a){
for(int i=1;i<=a.length-1;i++)
if(a[i]>resourceFree[i])
return false;
return true;
}
public boolean addDistribute(int[] a,int [] allResource){
for(int i=1;i<=a.length-1;i++)
if(a[i]>resourceFree[i])
return false;
for(int i=1;i<=a.length-1;i++){
resourceFree[i]-=a[i];
resourceUse[i]+=a[i];
resourceMayFree[i]+=allResource[i];
}
return true;
}
public boolean canBeAllDistribute(int[] a){
for(int i=1;i<=a.length-1;i++)
if(a[i]>resourceFree[i])
return false;
return true;
}
public boolean allDistrubite(int[] a){//完全分配
for(int i=1;i<=a.length-1;i++)
if(a[i]>resourceFree[i])
return false;
int[] temp=new int[a.length];
for(int i=1;i<=a.length-1;i++)
temp[i]=a[i];
for(int i=1;i<=a.length-1;i++){
resourceFree[i]-=temp[i];
resourceUse[i]+=temp[i];
}
return true;
}
// public boolean
public void freeResource(int[] a){
for(int i=1;i<=a.length-1;i++){
resourceUse[i]-=a[i];
resourceFree[i]+=a[i];
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -