All pastes #1936159 Raw Edit

Untitled

public text v1 · immutable
#1936159 ·published 2010-09-08 23:28 UTC
rendered paste body
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;j<n;j++)
			{
				if (i<j && arr[i]>arr[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"));
	}

}