def getNthPellNumber(n): ''' From: http://oeis.org/A000129: a( n ) = round( ( 1 + sqrt( 2 ) ) ^ n ) ''' precision = int(fmul(n, 0.4)) if mp.dps < precision: mp.dps = precision return getNthLinearRecurrence([1, 2], [0, 1], fsub(n, 1))
def getNthNonagonalHexagonalNumberOperator(n): # a = fmul( 3, sqrt( 7 ) ) # b = fadd( 8, a ) # c = fsub( 8, a ) # sign = 1 #power( -1, n ) # exponent = fsub( fmul( 4, n ), 4 ) # print( str( fmul( c, sign ) ) + ' ' + str( power( b, exponent ) ) ) # return floor( fprod( [ fdiv( 9, 112 ), fmul( c, sign ), power( b, exponent ) ] ) ) return getNthLinearRecurrence( [1, -1, -4162056194, 4162056194, 1], [1, 325, 5330229625, 1353857339341, 22184715227362706161], fsub(n, 1))
def getNthPellNumber( n ): ''' From: http://oeis.org/A000129 a( n ) = round( ( 1 + sqrt( 2 ) ) ^ n ) ''' if n < 0: raise ValueError( '\'nth_pell\' expects a non-negative argument' ) precision = int( fmul( n, 0.4 ) ) if ( mp.dps < precision ): mp.dps = precision return getNthLinearRecurrence( [ 1, 2 ], [ 0, 1 ], fsub( n, 1 ) )
def getNthNonagonalTriangularNumberOperator(n): n = fsub(n, 1) return getNthLinearRecurrence([1, -255, 255], [1, 325, 82621], n)
def getNthHeptagonalSquareNumberOperator(n): index = getNthLinearRecurrence([1, -1, 0, -1442, 1442, 0, 1], [1, 6, 49, 961, 8214, 70225, 1385329], fsub(n, 1)) return getNthPolygonalNumber(index, 7)
def getNthHeptagonalTriangularNumberOperator(n): return getNthLinearRecurrence([1, -1, -103682, 103682, 1], [1, 55, 121771, 5720653, 12625478965], fsub(n, 1))
def getNthPentagonalSquareNumberOperator(n): return getNthLinearRecurrence([1, -9603, 9603], [1, 9801, 94109401], fsub(n, 1))
def getNthPentagonalTriangularNumberOperator(n): if n == 0: return 0 return getNthLinearRecurrence([1, -195, 195], [1, 210, 40755], fsub(n, 1))