Find nth term of a given recurrence relation in Python

A recurrence relation defines a sequence where each term is expressed using previous terms. Given the relation b1=1 and bn+1/bn=2n, we need to find log2(bn) for any given n.

Understanding the Mathematical Solution

To solve this recurrence relation, we can derive the general formula step by step ?

Starting with the given relation:

bn+1/bn = 2n

bn/bn-1 = 2n-1

...

b2/b1 = 21

Multiplying all these equations together:

(bn+1/bn) × (bn/bn-1) × ... × (b2/b1) = 2n + (n-1) + ... + 1

This simplifies to:

bn+1/b1 = 2n(n+1)/2

Since b1 = 1, we get bn+1 = 2n(n+1)/2

Substituting (n-1) for n, we obtain:

bn = 2n(n-1)/2

Taking log2 of both sides:

log2(bn) = n(n-1)/2

Python Implementation

Here's the implementation to calculate log2(bn) ?

def find_log_bn(n):
    """Calculate log2(bn) for the given recurrence relation"""
    result = (n * (n - 1)) // 2
    return result

# Test with n = 6
n = 6
answer = find_log_bn(n)
print(f"For n = {n}, log2(bn) = {answer}")

# Verify: (6 * 5) / 2 = 15
print(f"Verification: {n} * {n-1} / 2 = {(n * (n-1)) // 2}")
For n = 6, log2(bn) = 15
Verification: 6 * 5 / 2 = 15

Testing with Multiple Values

Let's test our function with different values of n ?

def find_log_bn(n):
    return (n * (n - 1)) // 2

# Test with multiple values
test_values = [1, 2, 3, 4, 5, 6, 7]

for n in test_values:
    result = find_log_bn(n)
    print(f"n = {n}: log2(bn) = {result}")
n = 1: log2(bn) = 0
n = 2: log2(bn) = 1
n = 3: log2(bn) = 3
n = 4: log2(bn) = 6
n = 5: log2(bn) = 10
n = 6: log2(bn) = 15
n = 7: log2(bn) = 21

How It Works

The formula n(n-1)/2 represents the sum of first (n-1) natural numbers. This pattern emerges from the telescoping product of the recurrence relation ratios.

  • For n=1: log2(b1) = 1×0/2 = 0, so b1 = 20 = 1 ?
  • For n=6: log2(b6) = 6×5/2 = 15, so b6 = 215

Conclusion

The recurrence relation bn+1/bn = 2n with b1 = 1 gives us log2(bn) = n(n-1)/2. This elegant formula allows us to find the nth term's logarithm in constant time without computing all previous terms.

Updated on: 2026-03-25T09:48:53+05:30

747 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements