欢迎访问宙启技术站
智能推送

使用Python编写一个简单的函数来计算平方根。

发布时间:2023-10-24 11:53:10

平方根是指对一个非负实数取平方根的操作,即找出一个非负实数x,使得x的平方等于给定的实数n。

下面是一个使用二分查找方法来计算平方根的简单函数的Python实现:

def sqrt_binary_search(n):
    # 如果n小于0,则返回None
    if n < 0:
        return None

    # 如果n等于0,直接返回0
    if n == 0:
        return 0

    # 定义搜索范围的上下界
    low = 0
    high = n

    # 使用二分查找逼近平方根
    while low <= high:
        mid = (low + high) // 2
        square = mid * mid
        
        # 如果找到平方等于n的数,直接返回结果
        if square == n:
            return mid
        
        # 如果找到的平方小于n,则继续在右半部分搜索
        if square < n:
            low = mid + 1
        
        # 如果找到的平方大于n,则继续在左半部分搜索
        else:
            high = mid - 1
    
    # 返回最接近平方根的整数
    return high

使用示例:

# 计算平方根
print(sqrt_binary_search(9))  # 输出:3
print(sqrt_binary_search(16))  # 输出:4
print(sqrt_binary_search(25))  # 输出:5

# 计算负数的平方根
print(sqrt_binary_search(-16))  # 输出:None

请注意,这个函数只能计算非负实数的平方根。如果输入为负数,函数将返回None。如果希望计算负数的平方根,可以使用内置的cmath库,它提供了复数的支持。

import cmath

def sqrt_complex(n):
    return cmath.sqrt(n)

print(sqrt_complex(-16))  # 输出:4j