idk
This commit is contained in:
parent
9f12508a06
commit
bbb2f57d87
@ -7,8 +7,9 @@ double euclidean_length(const std::vector<double> &v);
|
|||||||
double scalar_product(const std::vector<double> &v, const std::vector<double> &w);
|
double scalar_product(const std::vector<double> &v, const std::vector<double> &w);
|
||||||
std::vector<double> normalize(const std::vector<double> &v);
|
std::vector<double> normalize(const std::vector<double> &v);
|
||||||
double euclidean_distance(const std::vector<double> &v, const std::vector<double> &w);
|
double euclidean_distance(const std::vector<double> &v, const std::vector<double> &w);
|
||||||
|
|
||||||
void print_dvector(const std::vector<double> &v);
|
void print_dvector(const std::vector<double> &v);
|
||||||
|
unsigned fibonacci_rec(unsigned n);
|
||||||
|
unsigned fibonacci_nonrec(unsigned n);
|
||||||
|
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
@ -19,6 +20,8 @@ int main()
|
|||||||
std::cout << "scalar product of 'a' and 'b': " << scalar_product(a, b) << '\n';
|
std::cout << "scalar product of 'a' and 'b': " << scalar_product(a, b) << '\n';
|
||||||
print_dvector(normalize(a));
|
print_dvector(normalize(a));
|
||||||
std::cout << "distance between 'a' and 'b': " << euclidean_distance(a, b) << '\n';
|
std::cout << "distance between 'a' and 'b': " << euclidean_distance(a, b) << '\n';
|
||||||
|
std::cout << "Recursive Fibonacci of 25: " << fibonacci_rec(50) << '\n';
|
||||||
|
std::cout << "Fibonacci of 50: " << fibonacci_nonrec(50) << '\n';
|
||||||
}
|
}
|
||||||
|
|
||||||
void print_dvector(const std::vector<double> &v) {
|
void print_dvector(const std::vector<double> &v) {
|
||||||
@ -30,10 +33,7 @@ void print_dvector(const std::vector<double> &v) {
|
|||||||
double euclidean_length(const std::vector<double> &v)
|
double euclidean_length(const std::vector<double> &v)
|
||||||
{
|
{
|
||||||
double sum = 0;
|
double sum = 0;
|
||||||
for(int i=0; i<v.size(); ++i)
|
|
||||||
{
|
|
||||||
sum += v[i]*v[i];
|
|
||||||
}
|
|
||||||
return std::sqrt(sum);
|
return std::sqrt(sum);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -68,4 +68,32 @@ double euclidean_distance(const std::vector<double> &v, const std::vector<double
|
|||||||
distance += (v[i]-w[i])*(v[i]-w[i]);
|
distance += (v[i]-w[i])*(v[i]-w[i]);
|
||||||
}
|
}
|
||||||
return std::sqrt(distance);
|
return std::sqrt(distance);
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned fibonacci_rec(unsigned n)
|
||||||
|
{
|
||||||
|
if(n<=2)
|
||||||
|
{
|
||||||
|
return 1l;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return fibonacci_rec(n-1)+fibonacci_rec(n-2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned fibonacci_nonrec(unsigned n)
|
||||||
|
{
|
||||||
|
unsigned fibo = 0;
|
||||||
|
unsigned prev_fibo = 1;
|
||||||
|
unsigned prev_prev_fibo = 0;
|
||||||
|
|
||||||
|
for(int i=2; i<=n; ++i)
|
||||||
|
{
|
||||||
|
fibo = prev_fibo + prev_prev_fibo;
|
||||||
|
prev_prev_fibo = prev_fibo;
|
||||||
|
prev_fibo = fibo;
|
||||||
|
}
|
||||||
|
|
||||||
|
return fibo;
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user