# Arup Guha
# 9/18/2014
# Probability distribution for randomly guessing on a matching test.

import math

def main():

    # Get user input.
    n = int(input("How many choices for your matching test?\n"))

    # Pre-calculate derangements.
    derangements = [0]*(n+1)
    derangements[0] = 1
    derangements[2] = 1
    derangements[3] = 2
    for i in range(4,n+1):
        derangements[i] = (i-1)*(derangements[i-1]+derangements[i-2])

    # Print Chart Header
    print("# Correct\tProbability")

    # For each value print out the probability of getting that many correct.
    for i in range(n+1):
        prob = combo(n, i)*derangements[n-i]/math.factorial(n)
        print(i,"\t",prob)


# Regular combination returns n choose k.
def combo(n,k):
    return math.factorial(n)//math.factorial(k)//math.factorial(n-k)

main()
