Examen Laboratori 2016 X30839


Statement
 

pdf   zip   tar

Sigui v un vector d’enters. Una 1-rotació del vector v és un vector en què els elements del vector v estan desplaçats una posició a l’esquerra. Per exemple, si tenim el vector:

Si hi apliquem una 1-rotació en aquest vector, tots els elements van a la posició de l’esquerra, llevat del primer, que va a parar a la darrera posició del vector:

i, finalment, queda aquest vector:

En general, una n-rotació és un vector que ha estat rotat n vegades a l’esquerra. Per exemple, pel vector:

una 3-rotació és l’aplicació d’una 1-rotació tres vegades:

Si N =length(v)= length(v), tenim que una N-rotació de v té, com a resultat, el mateix vector v. De fet, podem considerar que una N-rotació és equivalent a una 0-rotació (en què no fem cap rotació).

Cal que feu una funció que, donats dos vectors v1 i v2, torni TRUE si i només si v2 és una i-rotació de v1, per a alguna 1ilength(v1)1 \leq i \leq length(v1). És a dir, si v2 és igual a una i-rotació de v1. Ja teniu la capçalera d’aquesta funció al fitxer enunciat.R:

es_rotacio <- function (v1, v2)

Per exemple, si tenim:

la funció tornarà TRUE, ja que v2 és una 2-rotació de v1. En canvi, si tenim:

la funció tornarà FALSE ja que v2 no és una 1-rotació, ni una 2-rotació, 3-rotació 4-rotació ni una 5-rotació.

En cas que v1 i v2 vectors siguin iguals, la funció tornarà TRUE, ja que v2 és una 5-rotació de v1.

Per a resoldre aquest exercici, podeu fer dues funcions auxiliars:

  1. una funció auxiliar que, donat un vector, en calcula la 1-rotació.

  2. una funció auxiliar que, donats dos vectors, torna TRUE si i només si tots dos vectors són iguals.

Entrada

2 vectors v1 i v2 d’enters.

Sortida

TRUE si i només si v2 és una i-rotació de v1.

Public test cases
  • Input

    5
    2 3 1 5 4
    1 5 4 2 3  
    

    Output

    TRUE 
    
  • Input

    5
    2 3 1 5 4
    1 4 5 2 3
    
    

    Output

    FALSE 
    
  • Input

    10
    1 1 1 1 1 1 1 1 1 1
    1 1 1 1 1 1 1 1 1 1
    

    Output

    TRUE 
    
  • Information
    Author
    Jaume Baixeries
    Language
    Catalan
    Official solutions
    R
    User solutions
    R