Obliczanie pierwiastków kwadratowych za pomocą pętli for
Podobnie jak w R, pętle for w C++ wykonują ten sam kod określoną liczbę razy, zmieniając przy każdej iteracji wartość indeksu. Składnia pętli for jest jednak nieco bardziej rozbudowana niż w R.
for(int i = 0, i < n, i++) {
// Do something
}
int i = 0deklaruje indeks jako liczbę całkowitą (najczęstszy przypadek) i ustawia jego wartość na0podczas pierwszej iteracji.i < nokreśla warunek kontynuacji pętli: gdyiosiągnie wartośćn, warunek przestaje być spełniony i pętla zatrzymuje się.i++oznacza zwiększenie wartościio1przy każdej iteracji.
W tym ćwiczeniu uzupełnisz definicję funkcji obliczającej pierwiastek kwadratowy metodą babilońską. (W praktycznym kodzie wystarczy użyć sqrt(), które korzysta z szybszego, nowoczesnego algorytmu.)

To ćwiczenie jest częścią kursu
Optymalizacja kodu R za pomocą Rcpp
Instrukcje do ćwiczenia
- Zainicjalizuj lokalną zmienną
doublex wartością jeden. - Zdefiniuj pętlę
for.- Zainicjalizuj liczbę całkowitą
iwartością0. - Ustaw warunek iteracji:
imniejsze niżn. - Zwiększaj
io jeden przy każdym kroku.
- Zainicjalizuj liczbę całkowitą
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
#include
using namespace Rcpp;
// [[Rcpp::export]]
double sqrt_approx(double value, int n) {
// Initialize x to be one
double x = ___;
// Specify the for loop
___(int i = ___; ___; ___) {
x = (x + value / x) / 2.0;
}
return x;
}
/*** R
sqrt_approx(2, 10)
*/