开方的实现

2014年创新工场校招笔试题:

1、求一个正整数N的开方,要求不能用sqrt函数。精度精确到0.001。

1.牛顿法求开方:

对于待开n次方的数a,开n次方后的结果为x,则有 x = x - f‘(x)/f(x), 其中f(x) = x^n - a;

经过化简之后可得:x = [(n-1)x + a/(x^(n-1))]/n

通过多次迭代求解,直至收敛,此时,x便为a开n次方的结果。

开方的实现

时间: 2024-11-04 19:41:09

开方的实现的相关文章

高精度模板2(带符号压位加减乘除开方封包)

原来的那个模板:http://www.cnblogs.com/iwtwiioi/p/3991331.html 估计已经不用了. 现在我重新封包好了一个,一定很好用QAQ 加减乘除带开方带压位带重载运算符 注意一下符号即可,一定写的时候要手推四种情况!! 然后在重载<的时候,一定要注意同时判断!!!!要不然又错.. struct big { typedef ll INT; static const INT S=100000000; static const int S_n=9; static co

js 次方 开方

次方 ,用Math.pow(值,次方数) 如: Math.pow(3,2);   3的平方 Math.Pow(2,3);   2的立方 开方Math.sqrt(值) 如: Math.sqrt(9);   9 开方,返回结果3 完!

Java下用牛顿迭代法实现开方

1 import java.util.Scanner; 2 3 public class sqrtNewton { 4 public static void main(String[] args) { 5 System.out.println("请输入要开方的数:"); 6 Scanner input = new Scanner(System.in); 7 double num = input.nextDouble(); 8 double e = 0.01F; 9 sqrt(num,

NTT+多项式求逆+多项式开方(BZOJ3625)

定义多项式h(x)的每一项系数hi,为i在c[1]~c[n]中的出现次数. 定义多项式f(x)的每一项系数fi,为权值为i的方案数. 通过简单的分析我们可以发现:f(x)=2/(sqrt(1-4h(x))+1) 于是我们需要多项式开方和多项式求逆. 多项式求逆: 求B(x),使得A(x)*B(x)=1 (mod x^m) 考虑倍增. 假设我们已知A(x)*B(x)=1 (mod x^m),要求C(x),使得A(x)*C(x)=1 (mod x^(2m)) 简单分析可得C(x)=B(x)*(2-A

蓝桥杯T126(xjb&amp;大数开方)

题目链接:http://lx.lanqiao.cn/problem.page?gpid=T126 题意:中文题诶- 思路:显然被翻转了奇数次的硬币为反面朝上,但是本题的数据量很大,所以O(n^2)枚举每个点肯定是不行的... 可以反过来想一下,对于一个坐标 (i, j),显然其只被坐标 (x, y) 影响当且仅当 x 是 i 的因子或者 y 是 j 的因子: 用 f(x) 表示 x 的因子数目,那么坐标 (i, j) 反面朝上的充要条件为 f(i)*f(j) 为奇数,即 f(i) 为奇数并且 f

一个正整数N,不用sqrt求开方数

#include<stdio.h> int main() { int n; // 正整数n int i; // for循环 int myR = 1; // 保证myR^2 <= n < (myR+1)^2 double temp; // 临时变量 while(scanf("%d", &n) != EOF) { if (n <= 0) continue; // 寻找myR for (i=1; i<=n/2; i++) { if ((i * i

计算机科学和PYTHON编程导论_笔记1开方算法

x开方 1.猜测g 2.计算g^2 3.与x比较,如果不足够接近(<epsilon) 4.得到g=1/2(g+x/g),去往2

HDU 4027—— Can you answer these queries?——————【线段树区间开方,区间求和】

Can you answer these queries? Time Limit:2000MS     Memory Limit:65768KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 4027 Description A lot of battleships of evil are arranged in a line before the battle. Our commander decides to use

文本分类入门-特征选择算法之开方检验

http://www.blogjava.net/zhenandaci/archive/2008/08/31/225966.html 前文提到过,除了分类算法以外,为分类文本作处理的特征提取算法也对最终效果有巨大影响,而特征提取算法又分为特征选择和特征抽取两大类,其中特征选择算法有互信息,文档频率,信息增益,开方检验等等十数种,这次先介绍特征选择算法中效果比较好的开方检验方法. 大家应该还记得,开方检验其实是数理统计中一种常用的检验两个变量独立性的方法.(什么?你是文史类专业的学生,没有学过数理统

C++用模板求解开方(你不得不知道的模板带给我们的运行效率)

#include <iostream> using namespace std; template<int N,int low=0,int high=N> class Sqrt { public: enum{mid=(low+high+1)/2}; enum{result = (mid*mid>N) ? Sqrt<N,low,mid-1> :: result : Sqrt<N,mid,high> :: result}; }; template<i