import java.util.*; import java.io.*; public class 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 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 kappaClique(int n,int k,double p){ double kappa = (k*(k-1)*Math.log(1.0/p))/(2.0 *(logFactorial(n) - logFactorial(k) - logFactorial(n-k)));; return kappa; } public static void main(String[] args) throws IOException { if (args.length == 0){ System.out.println("n p k"); return; } int n = Integer.parseInt(args[0]); // vertices in a graph double p = Double.parseDouble(args[1]); // edge probability int k = Integer.parseInt(args[2]); // size of independent set System.out.println(kappaClique(n,k,p)); } }