rendered paste bodyimport java.util.Map;import java.util.TreeMap;public class Test { private static final int MAX_PRIO = 3; private static boolean[] toogle= new boolean[MAX_PRIO+1]; private static int[] normAnteil= new int[MAX_PRIO+1]; private static Map<Integer,Integer> proc=new TreeMap<Integer,Integer>(); private static boolean schedule(int prio){ if(!proc.containsKey(prio)||prio>MAX_PRIO)return false; toogle[prio]=!toogle[prio]; boolean x=true; if(proc.get(prio)<=((sum/Math.pow(2,prio+1)))||proc.get(prio)==0){ x=!schedule(prio+1); } if(x){ System.out.print(prio+" "); proc.put(prio,proc.get(prio)-1); sum--; return true; } return true; } /** * @param args: 4 prozesse der priorität 2, 3 der prio 1, 1 der prio 0, 0 */ public static void main(String[] args) { //prio,anzahl proc.put(0,1); proc.put(1,1); proc.put(2,1); proc.put(3,20); scosusMultiplikatording(); int y=calcSum(); sum=calcSum(); calcNormAnteil(); System.out.println(y); for(int i=0;i<y;i++)schedule(0); } private static int sum; private static void scosusMultiplikatording(){ for(int prio=0;prio<MAX_PRIO;prio++){ if(proc.containsKey(prio)){ int z = proc.get(prio); z=(int) (z*Math.pow(2,MAX_PRIO-prio)); proc.put(prio,z); } } } private static int calcSum(){ int x=0; for(int i=0;i<=MAX_PRIO;i++){ if(proc.containsKey(i)){ x+=proc.get(i); } } return x; }}