最簡單開根號算法
最簡單的開根號算法是二分搜尋法(Binary Search Method)。這個方法的基本思路是:
- 設定一個區間,開始時這個區間是包含答案的整個數字空間。
- 將區間中點的數值與要求的開方值進行比較。
- 如果中點的數值小於要求的開方值,則將區間縮小為左半邊(因為開方值在區間的左半邊)。
- 如果中點的數值大於要求的開方值,則將區間縮小為右半邊(因為開方值在區間的右半邊)。
- 重複步驟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是開方值的範圍。對於非常大的數字,可以使用更高效的算法,如牛頓法或更複雜的二分搜尋變體。