import java.util.*; import java.io.*; public class AnalysePair { private static double kappa(int n,int k,double p){ double kappa = (k*(k-1)*Math.log(1.0/(1.0 - p)))/(2.0 *(logFactorial(n) - logFactorial(k) - logFactorial(n-k)));; return kappa; } private static double logFactorial(int n){ double fac = 0; for (int a = 2; a <= n; a++) fac += Math.log(a); return fac; } private static void show(long[]x){ int n = x.length; for (int i=0;i<n;i++) System.out.print(x[i] + " "); System.out.println(); } private static long average(long[]x){ int n = x.length; long sum = 0; for (int i=0;i<n;i++) sum = sum + x[i]; return sum/n; } private static double average(double[]x){ int n = x.length; double sum = 0; for (int i=0;i<n;i++) sum = sum + x[i]; return sum/n; } private static double geometricMean(long[]x){ int n = x.length; double logSum = 0.0; for (int i=0;i<n;i++) logSum = logSum + Math.log((double)x[i]); return Math.exp(logSum/(double)n); } private static long median(long[]x){ int n = x.length; Arrays.sort(x); return x[n/2]; } private static long min(long[]x){ int n = x.length; long min = x[0]; for (int i=1;i<n;i++) min = Math.min(min,x[i]); return min; } private static long max(long[]x){ int n = x.length; long max = x[0]; for (int i=1;i<n;i++) max = Math.max(max,x[i]); return max; } private static void stats(String alg1,String alg2,int n,int p,int lwb,int upb) throws IOException { String fname1 = ""; String fname2 = ""; long time1, time2; double[] timeRatio = new double[upb-lwb+1]; int count = 0; for (int i=lwb;i<=upb;i++){ if (i < 10) fname1 = "../randomResultsJava/"+ alg1 +"-"+ n +"-"+ p +"-0"+ i +".txt"; else fname1 = "../randomResultsJava/"+ alg1 +"-"+ n +"-"+ p +"-"+ i +".txt"; if (i < 10) fname2 = "../randomResultsJava/"+ alg2 +"-"+ n +"-"+ p +"-0"+ i +".txt"; else fname2 = "../randomResultsJava/"+ alg2 +"-"+ n +"-"+ p +"-"+ i +".txt"; Scanner sc1 = new Scanner(new File(fname1)); Scanner sc2 = new Scanner(new File(fname2)); sc1.nextLong(); sc2.nextLong(); // size sc1.nextLong(); sc2.nextLong(); // nds time1 = sc1.nextLong(); time2 = sc2.nextLong(); //System.out.format("%.2f ",((float)p)/100.0); System.out.print(time1 +" "+ time2 +" "); System.out.format("%.2f ",((float)time1)/((float)time2)); System.out.println(); timeRatio[count++] = ((float)time1)/((float)time2); sc1.close(); sc2.close(); } //System.out.format("%d %.2f %.2f",n,((float)p)/100.0,average(timeRatio)); //System.out.println(); } public static void main(String[] args) throws IOException { String alg1 = args[0]; String alg2 = args[1]; int n = Integer.parseInt(args[2]); // vertices in a graph int pLo = Integer.parseInt(args[3]); // edge probability int pHi = Integer.parseInt(args[4]); // edge probability int pInc = Integer.parseInt(args[5]); // increment for p int lwb = Integer.parseInt(args[6]); // index of 1st results file int upb = Integer.parseInt(args[7]); // index of last results file for (int p=pLo;p<=pHi;p=p+pInc) stats(alg1,alg2,n,p,lwb,upb); } }