제곱근을 구하기 위해서는 다음과 같은 공식을 만족합니다.
x = root(a) 라면
x^2 = a 입니다.
따라서 x = a/x가 됩니다.
이에 의해서
임의의 x에 의해서 a의 제곱근 값은
x < root(a) < a/x 거나
a/x < root(a) <x 의 범위에 있게 됩니다.
따라서 a와 a/x의 평균값을 구하는
(a+b)/2 공식을 이용해 x = (x + a/x)/2 의 식을 이용하면
대부분의 수는 10번을 돌기 이전에 루트 값을 구할 수 있습니다.
간단하게 아래 C#으로 코딩해본 소스입니다.
using System;
using System.Collections.Generic;
using System.Text;namespace Sqrt
{
class SqrtMain
{
static double Sqrt(double aa, double xx)
{
try
{
for (int i = 0; i < 10; i++)
Console.WriteLine(xx = (xx + aa / xx) / 2);
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
return xx;
}static void Main(string[] args)
{
Console.WriteLine(Sqrt(2341, 3));
}
}
}
'Development > .NET' 카테고리의 다른 글
| Microsoft Visual C# .NET을 통해 Microsoft Excel을 자동화하는 방법 (0) | 2007.07.19 |
|---|---|
| 적금계산 프로그램 (1) | 2007.07.18 |
| .NET C# 홀수,4의배수마방진 (0) | 2007.07.16 |
| C# 개미퀴즈 프로그램 (2) | 2007.07.16 |
| C#으로 짜본 야구게임 (1) | 2007.07.16 |