import java.util.Random; public class AvgNumofInversions { public static int absoluteVal (int n) { return (n<0?-(n):n); } public static int factorial(int n) { if(n==0) return 1; else return(n*factorial(n-1)); } public static int inversionCount (int [] arr, int n) { int invCnt=0; for (int i=0;i< n;i++) { for (int j=i+1;jarr[j]) invCnt++;; } } return invCnt; } public static void main(String[] args) { int n=Integer.parseInt(args[0]); int [] arr= new int[101]; int [][] result= new int [101][2]; for (int i=0; i<=n; i++) { for (int j=0; j<=n;j++) { int val=absoluteVal(new Random().nextInt()) %9; arr[j]=val; //System.out.println("value: "+val); } int numOfPermutations=factorial(i); int numOfInverstions=inversionCount(arr,i); result[i][0]=numOfPermutations; result[i][1]=numOfInverstions; } System.out.println("N\tnumOfPermutations\tnumOfInverstions\t1/AvgNumOfInversions"); for (int i=0; i<=n;i++) System.out.println(i+"\t\t"+result[i][0]+"\t\t\t"+result[i][1]+"\t\t"+(result[i][1]!=0?(result[i][0]/result[i][1]):"N/A")); } }