Heu de fer una funció que, donats dos vectors X i Y,
que representen un conjunt de punts en un espai bidimensional,
i una distància màxima dist_max,
torni cert si i només si no hi ha cap distància euclidiana entre
dos punts del vector que sigui més gran que dist_max.
La distància euclidiana (en un espai bidimensional) entre dos punts
(xi, yi) i (xj,yj) és:
| √ |
|
Heu de programar una funció que es diu limit,
que rep dos vectors d’enters i un enter, i torna un booleà.
Tots dos vectors tenen la mateixa mida N > 0.
Per exemple, si tenim:
X <- c(3,4,5,2)
Y <- c(5,3,1,1)
això correspon als punts:
P1 = (3,5)
P2 = (4,3)
P3 = (5,1)
P4 = (2,1)
En aquest cas, la crida limit (X,Y,4) tornaria FALSE,
ja que la distància entre els punts P1 i P2 és 4.47 > 4.
Si tenim:
X <- c(2,4,5,8,6)
Y <- c(3,4,4,6,3)
llavors la crida a limit (X,Y,7) tornarà TRUE,
ja que la distància euclidiana més gran que hi ha és entre els punts
P1 i P4, que és 6.7 ≤ 7.
Podeu fer vosaltres les funcions auxiliars que necessiteu.
De l’R, només podeu fer servir la funció sqrt.
Observació
Al fitxer public.tar hi ha el fitxer enunciat.R
que conté l’esquelet del programa. Fes-lo servir, però no modifiquis
la part indicada. Aquest fitxer el pots fer servir també en l’entorn R.
Entrada
2 vectors v1 i v2 d’enters i un enter que és una distància màxima.
Sortida
TRUE si i només si no hi ha cap distància euclidiana entre
dos punts del vector que sigui més gran que dist_max.
Input
4 4 3 4 5 2 5 3 1 1
Output
FALSE
Input
7 5 2 4 5 8 6 3 4 4 6 3
Output
TRUE
Input
0 30 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Output
TRUE