Babylonian method
Ugrás a navigációhoz
Ugrás a kereséshez
A babilóniai módszer egy iteratív algoritmus a négyzetgyök kiszámítására. Ez az ún. Heron-módszer, amely egy ókori görög matematikustól, Herontól is ismert. A módszer az alábbi egyszerű elven alapul:
Ha meg akarjuk találni egy S szám négyzetgyökét (√S), akkor keresünk egy olyan x számot, amelyre x² ≈ S. Az algoritmus így működik:
- Válasszunk egy x₀ kezdeti becslést (például S/2 vagy 1).
- Használjuk az iterációs képletet: Ez azt jelenti, hogy az xₙ és S/xₙ számtani közepe egyre jobb közelítés lesz √S-re.
- Addig ismételjük, amíg az érték kellően pontos nem lesz (például amíg a változás xₙ+1 - xₙ kisebb egy adott hibahatárnál, pl. 0.00001).
C++ kód a babilóniai módszerre
Az alábbi kód egy egyszerű implementációt mutat be a babilóniai módszerre:
#include <iostream>
#include <cmath>
double babylonianSqrt(double S, double epsilon = 0.00001) {
if (S < 0) {
std::cerr << "Negatív számnak nincs valós négyzetgyöke!" << std::endl;
return -1;
}
double x = S / 2.0; // Kezdő becslés
while (std::abs(x * x - S) > epsilon) {
x = (x + S / x) / 2.0;
}
return x;
}
int main() {
double number;
std::cout << "Adj meg egy számot: ";
std::cin >> number;
double result = babylonianSqrt(number);
if (result != -1) {
std::cout << "A " << number << " négyzetgyöke (babilóniai módszerrel): " << result << std::endl;
}
return 0;
}
Magyarázat
babylonianSqrt(double S, double epsilon = 0.00001)- S: A szám, amelynek a négyzetgyökét keressük.
- S: A szám, amelynek a négyzetgyökét keressük.
- epsilon: A pontossági határ, amelynél megállunk.
- epsilon: A pontossági határ, amelynél megállunk.
- Ha S < 0, hibaüzenetet ad, mert negatív számoknak nincs valós négyzetgyöke.
- Ha S < 0, hibaüzenetet ad, mert negatív számoknak nincs valós négyzetgyöke.
- x kezdeti értéke S/2 (vagy lehet 1 is).
- x kezdeti értéke S/2 (vagy lehet 1 is).
- A while ciklus addig fut, amíg |x² - S| > epsilon, vagyis amíg az eredmény nem elég pontos.
- Iteráció
- Az új x értékét az (x + S/x) / 2 képlettel számoljuk.
- Az új x értékét az (x + S/x) / 2 képlettel számoljuk.
- Az egyre jobb közelítés miatt az érték gyorsan konvergál √S-hez.
- Használat
- A felhasználó beír egy számot, és a program kiírja annak négyzetgyökét a babilóniai módszerrel.
Összegzés
- A babilóniai módszer egy gyors és hatékony algoritmus a négyzetgyök kiszámítására.
- Iteratív módon javítja az eredményt, és nagyon gyorsan közelít a valódi értékhez.
- A C++ kód egyszerű, könnyen érthető, és pontos eredményeket ad.