コード例 #1
0
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))
コード例 #2
0
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))
コード例 #3
0
ファイル: rpnCombinatorics.py プロジェクト: ConceptJunkie/rpn
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 ) )
コード例 #4
0
def getNthNonagonalTriangularNumberOperator(n):
    n = fsub(n, 1)
    return getNthLinearRecurrence([1, -255, 255], [1, 325, 82621], n)
コード例 #5
0
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)
コード例 #6
0
def getNthHeptagonalTriangularNumberOperator(n):
    return getNthLinearRecurrence([1, -1, -103682, 103682, 1],
                                  [1, 55, 121771, 5720653, 12625478965],
                                  fsub(n, 1))
コード例 #7
0
def getNthPentagonalSquareNumberOperator(n):
    return getNthLinearRecurrence([1, -9603, 9603], [1, 9801, 94109401],
                                  fsub(n, 1))
コード例 #8
0
def getNthPentagonalTriangularNumberOperator(n):
    if n == 0:
        return 0

    return getNthLinearRecurrence([1, -195, 195], [1, 210, 40755], fsub(n, 1))