求根號x(LeetCode 分治篇)

2021-08-21 03:46:11 字數 544 閱讀 1877

題目描述

實現int sqrt(int x).計算並返回x的平方根。

方法

牛頓迭代法和二分查詢法

1. 牛頓迭代法

思路:給定乙個初始值,然後通過迭代來逼近方程的解

舉例:本題求的是函式f(x) = x^2 - t = 0(其中t為所給數值x)的解

**示例:

class solution

double temp = x;

while (fabs(temp*temp - x) > 0.0001)

return int(temp);

}2.二分查詢法

思路:將1到x區間一分為二,從中間mid = (1+x)/2開始找起,若mid>x/mid,向左移動,若mid==x/mid,返回mid,若mid**示例:

class solution

}return (left + right) / 2;

};};

牛頓法求根號數(Python)

以前也是用過這個東西的,但是一直都不是很清楚原理。後來理解了牛頓法了之後,發現這個東西,就是牛頓法的乙個簡單的應用而已。target 就是目標數 x t 1 xt f x t f xt x x frac xt 1 xt f x t f xt 若收斂,則 x x f x f x x x frac x ...

根號分治做題記錄

對於塊長 b sqrt n 對 le b 和 b 採用其中一種使用暴力,另一種利用 frac n b le b 使用另一種策略。這種方法叫根號分治。利用基本不等式等等,對 b 的取值進行平衡,是複雜度最優。對步長 k 分類討論。當 k b 時,跳的次數不會超過 n b 暴力跳,用倍增實現跳 k 條邊...

XSY2423 跳蚤(根號分治)

神奇的分類討論。首先注意到每次所有跳蚤都只會往右跳,也就是說只要某乙隻跳蚤跳出了 max ri max r i max ri 它就不會再有貢獻了。和 火神的魚 類似 令 r max ri r max r i r max ri 考慮根號分治,將所有的跳蚤分成兩類 將 t i rt i sqrt ti ...