最簡單開根號算法

最簡單的開根號算法是二分搜尋法(Binary Search Method)。這個方法的基本思路是:

  1. 設定一個區間,開始時這個區間是包含答案的整個數字空間。
  2. 將區間中點的數值與要求的開方值進行比較。
  3. 如果中點的數值小於要求的開方值,則將區間縮小為左半邊(因為開方值在區間的左半邊)。
  4. 如果中點的數值大於要求的開方值,則將區間縮小為右半邊(因為開方值在區間的右半邊)。
  5. 重複步驟2-4,直到區間縮小到足夠小的程度,此時區間的端點就是要求的開方值。

以下是一個簡單的Python程式碼示例,用來計算一個正整數的平方根:

def binary_search_sqrt(x):
    low = 0
    high = x
    while low <= high:
        mid = (low + high) // 2
        if mid * mid == x:
            return mid
        elif mid * mid < x:
            low = mid + 1
        else:
            high = mid - 1
    return None

# 使用示例
x = int(input("請輸入一個正整數:"))
sqrt_x = binary_search_sqrt(x)
if sqrt_x is not None:
    print(f"{x} 的平方根是 {sqrt_x}。")
else:
    print("平方根不存在或不是整數。")

這個算法的時間複雜度是O(log n),其中n是開方值的範圍。對於非常大的數字,可以使用更高效的算法,如牛頓法或更複雜的二分搜尋變體。