C/C++ 제곱근 SQRT
0x0300 : Study/0x0304 : Programming제곱근 구하는 함수를 처음 봤는데 구글에 검색하자마자 바로 눈에 보인건 구현 이였다.
그래서 나도 따라해본다(?)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include <stdio.h> double SQRT(double input, double x){ for(int i=0; i<10; i++){ x = (x + (input / x)) / 2 ; } return x ; } double SQRT(double, double); void main() { double input, x, result; while(1) { scanf("%lf", &input); scanf("%lf", &x); result = SQRT(input, x); printf("SQRT num : %lf", result); } } | cs |
SQRT 를 구현한 C 코드이다. 검색 해보니깐 제곱근을 구하는 알고리즘으로 바빌로니아 법 이라는 것을 찾을 수 있었다.
x = (x + (A / x)) / 2
가 주된 결론인데. A는 제곱근을 구하고자 입력되는 값이고 x 는 0~ a 사이에 존재하는 임의의 값이다. 수식을 원하는 근사치가 나올때까지 반복 루프 돌리게 되는데, 루프를 많이 돌릴수록제곱근의 정확도가 높아진다.
이외에도 진짜 많은 자료가 있는데... 쓰면서 참고자료 링크 걸려다 보니깐 먼가 뻘짓한 기분도 들기도 하고...
링크 :: https://www.codeproject.com/Articles/69941/Best-Square-Root-Method-Algorithm-Function-Precisi
'0x0300 : Study > 0x0304 : Programming' 카테고리의 다른 글
C/C++ calloc vs malloc+memset (0) | 2017.10.20 |
---|---|
C/C++ int main, void main (0) | 2017.10.18 |
C/C++ string in switch/case (0) | 2017.10.18 |
python z3 (0) | 2017.07.24 |
python subprocess (0) | 2017.07.10 |