Team Ai
Apppublic

Agents-MCP-Hackathon/Python-Code-to-Diagram-Generator-MCP

sourceHugging Facemitupdated 1y agoView on Hugging Face
6likes
fibonacci_functions.py89 linesDownload Raw Back to examples
1"""2Fibonacci computation functions for testing function analysis.3"""4 5def fibonacci_recursive(n):6    """Calculate fibonacci number using recursion."""7    if n <= 1:8        return n9    return fibonacci_recursive(n - 1) + fibonacci_recursive(n - 2)10 11 12def fibonacci_iterative(n):13    """Calculate fibonacci number using iteration."""14    if n <= 1:15        return n16    17    a, b = 0, 118    for _ in range(2, n + 1):19        a, b = b, a + b20    return b21 22 23def fibonacci_memoized(n, memo=None):24    """Calculate fibonacci number using memoization."""25    if memo is None:26        memo = {}27    28    if n in memo:29        return memo[n]30    31    if n <= 1:32        memo[n] = n33        return n34    35    memo[n] = fibonacci_memoized(n - 1, memo) + fibonacci_memoized(n - 2, memo)36    return memo[n]37 38 39def fibonacci_sequence(count):40    """Generate a sequence of fibonacci numbers."""41    sequence = []42    for i in range(count):43        sequence.append(fibonacci_iterative(i))44    return sequence45 46 47def compare_fibonacci_methods(n):48    """Compare different fibonacci calculation methods."""49    import time50    51    methods = [52        ("Recursive", fibonacci_recursive),53        ("Iterative", fibonacci_iterative), 54        ("Memoized", fibonacci_memoized)55    ]56    57    results = {}58    for name, func in methods:59        start_time = time.time()60        result = func(n)61        end_time = time.time()62        results[name] = {63            'result': result,64            'time': end_time - start_time65        }66    67    return results68 69 70def validate_fibonacci_result(n, result):71    """Validate if a fibonacci result is correct."""72    if n <= 1:73        return result == n74    75    # Use iterative method as baseline for validation76    expected = fibonacci_iterative(n)77    return result == expected78 79 80if __name__ == "__main__":81    n = 1082    print(f"Fibonacci({n}) using different methods:")83    84    results = compare_fibonacci_methods(n)85    for method, data in results.items():86        print(f"{method}: {data['result']} (took {data['time']:.6f} seconds)")87    88    print(f"\nFirst 15 fibonacci numbers: {fibonacci_sequence(15)}")89