All pastes #906172 Raw Edit

Anonymous

public text v1 · immutable
·published 2008-02-16 12:08 UTC
rendered paste body
import time,sys

#T(a, 0) = 1
#T(0, b) = T(1, b-1)
#T(24, b) = T(23, b)
#T(a, b) = T(a-1, b-1) + T(a+1, b-1)

retType = lambda a:ModInt(a, 10)

def T(a, b):
    global retType
    if b==1 or b==0: return retType(1)
    if a==0: return retType(T(1, b-1))
    if a==25: return retType(T(24, b-1))
    return retType(T(a-1, b-1) + T(a+1, b-1))

def triv(n):
    if n==0:return 1
    else:return triv(n-1)+triv(n-1)

class ModInt:
    def __init__(self, n, m):
        self.n = int(n)%m
        self.m = m
    def __add__(self, n):
        return ModInt(self.n + int(n), self.m)
    def __radd__(self, n):
        return ModInt(int(n) + self.n, self.m)
    def __sub__(self, n):
        return ModInt(self.n - int(n), self.m)
    def __rsub__(self, n):
        return ModInt(int(n) - self.n, self.m)
    def __mul__(self, n):
        return ModInt(self.n * int(n), self.m)
    def __rmul__(self, n):
        return ModInt(int(n) * self.n, self.m)
    def __div__(self, n):
        return ModInt(self.n / int(n), self.m)
    def __rdiv__(self, n):
        return ModInt(int(n) / self.n, self.m)
    def __int__(self):
        return self.n
    def __repr__(self):
        return str(self.n)
    def __str__(self):
        return str(self.n)
    def __eq__(self, n):
        return self.n==int(n)

def memoizate(f):
    class F:
        def __init__(self, f):
            self.f=f
            self.m={}
        def call(self, *args):
            targs=tuple(args)
            try:
                return self.m[targs]
            except:
                res=self.f(*args)
                self.m[targs]=res
                return res
    _f=F(f)
    return lambda *a:_f.call(*a)

sys.setrecursionlimit(20000)

T=memoizate(T)

def get_uohg(a):
    return sum([T(i, a) for i in range(26)])

#print get_uohg(100)

for arg in sys.argv:
    try:
        uohg = get_uohg(int(arg))
        print arg, uohg
    except:
        pass