0
Ich habe den folgenden rekursiven Code, den ich in iterativen Code ändern möchte. Ich bin mir unsicher, wo ich anfangen soll, da die Funktion bei rekursiven Aufrufen an zwei Stellen sehr komplex ist. Irgendwelche möglichen iterativen Implementierungen für die folgende Funktion?Iterativ rekursiven Code schreiben
int ncip(int dim, double R){
int n, r = (int)floor(R);
if (dim == 1)
return 1 + 2*r;
n = ncip(dim-1, R); // last coord 0
for (int i=1; i<=r; ++i){
n += 2*ncip(dim-1, sqrt(R*R - i*i)); // last coord +- i
}
return n;
}
Sie sollten diese Seite des Kumpels überprüfen, wenn Sie noch nicht: https://monsiterdex.wordpress.com/2013/04/05/integer-gitter-in-n-dimensional-sphere-count-of-points-mit-ganzzahligen-koordinaten-using-parallel-programming-part-i / –