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