基本介紹
- 中文名:平方根函式
- 外文名:sqrt
- 功能:計算一個非負實數的平方根
- 函式原型:double sqrt(double)
- 套用:考驗CPU的浮點能力
- 頭檔案:math.h
- 本質:程式函式
程式例,pascal,gcc,EXCEL函式,Python函式,C++,
程式例
#include<math.h>#include<stdio.h>int main(void){ double x = 4.0,result; result = sqrt(x); //result*result=x printf("Thesquarerootof%fis%f\n",x,result); return 0;}
VC 2008後為重載函式,原型為 float sqrt (float),double sqrt (double),double long sqrt(double long)
注意沒有sqrt (int),但是返回值可以為int
John Carmack's sqrt [C/C++]
Carmack的sqrt計算函式在批量計量時的耗時比系統庫函式還要少,優異的性能的根本原因就是那個令無數人膜拜的魔數0x5F3759DF。
static float CarmackSqrt (float x){ float xhalf = 0.5f * x; int i = *(int*)&x; // get bits for floating VALUE i = 0x5f3759df - (i>>1); // gives initial guess y0 x = *(float*)&i; // convert bits BACK to float x = x*(1.5f - xhalf*x*x); // Newton step, repeating increases accuracy x = x*(1.5f - xhalf*x*x); // Newton step, repeating increases accuracy x = x*(1.5f - xhalf*x*x); // Newton step, repeating increases accuracy return (1 / x);}
pascal
a := sqrt(sqr(x-x[j])+sqr(y-y[j]));
b := sqrt(sqr(x-x[k])+sqr(y-y[k]));
c := sqrt(sqr(x[j]-x[k])+sqr(y[j]-y[k]));
gcc
例如:
/*檔案名稱test.c*/#include<stdio.h>#include<math.h>//#include<stdlib.h>void main(){ double x; double n=rand()%100; printf("%lf\n",n); x=sqrt(n); printf("%lf\n",x);}
EXCEL函式
返回正平方根。
語法
SQRT(number)
Number 要計算平方根的數。
說明
如果參數 Number 為負值,函式 SQRT 返回錯誤值 #Num!。
語法
SQRT(number)
Number 要計算平方根的數。
說明
如果參數 Number 為負值,函式 SQRT 返回錯誤值 #Num!。
Python函式
#!/usr/bin/env python
import math # This will import math module
print("math.sqrt(100) is:", math.sqrt(100))
C++
#include <iostream>//這裡的cmath等價於C的math.h#include <cmath>using namespace std;int main(){ double x, result; cin>>x; result=sqrt(x); cout<<x<<"的平方根是"<<result<<endl; return 0;}//cmath等價於math.h,其就是using math.h的函式//VC 2008後為重載函式,原型為 float sqrt (float),double sqrt (double),double long sqrt(double long)//注意沒有sqrt (int),但是返回值可以為int