#!/usr/bin/env python
# -*- coding: utf-8 -*-
#UTF-8 kódolás engedélyezése

#Felhasznált irodalom:
# - https://stackoverflow.com/a/4941932
# - https://docs.python.org/ (hivatalos python dokumentáció)
# - https://keisan.casio.com/calculator (nagy precizitású számológép)
from fractions import Fraction;
from math import factorial;
import sys

tizedesek = int(input("Adja meg, hogy mekkora pontossággal számoljunk! (hány tizedes jegyig) "));
print("Az eredmény magyarázata:");
print(" - első szám: az, hogy mennyivel a játék vége előtt visszük le a kapust");
print(" - második szám: ebben az esetben mekkora valószínűsége a grizzlik nyerésének");

pascal=[[0 for i in range(1201)] for j in range(1201)];

pascal[0][0]=1
for i in range(1,1201):
    pascal[i][0]=1;
    for j in range(1,i+1):
        pascal[i][j]+=pascal[i-1][j];
        pascal[i][j]+=pascal[i-1][j-1];

def ncr(n, r):
    return pascal[n][r];
def valoszinuseg_grizzli(ido, darab):
    fr = (ncr(ido,darab)*179**(ido-darab)*10**tizedesek)//180**(ido);
    if ido == darab:
        fr = (ncr(ido,darab)*10**tizedesek)//180**(ido);
        #print(ido, darab, ncr(ido,darab),10**tizedesek,180**(ido));
    return fr;
def valoszinuseg_pingvin(ido, darab):
    fr = (ncr(ido,darab)*89**(ido-darab)*10**tizedesek)//90**(ido);
    if ido == darab:
        fr = (ncr(ido,darab)*10**tizedesek)//90**(ido);
    return fr;

F = open('eredmeny.txt','w');


for ido in range(1,1201):   #20 perces egy harmad
    gr_val=0;
    mehet=True;
    for gr_gol in range(1,ido+1):
        for pg_gol in range(0,gr_gol):
            tmp=valoszinuseg_grizzli(ido,gr_gol)*valoszinuseg_pingvin(ido,pg_gol);
            if tmp==0 :
                mehet=False;
                break;
            gr_val+=tmp;
        if not mehet:
            break;
    print(ido, str(gr_val)+"/10^"+str(tizedesek*2));
    F.write(str(ido));
    F.write(' ');
    F.write(str(gr_val)+"/10^"+str(tizedesek*2));
    F.write('\r\n');
