Permutació d’un vector

Donat un vector de reals pp, fes un procediment amb la següent capçalera:

	vector<double> permutacio (vector<double>& p)

que calculi una permutació del vector pp. Cal fer-ho de la següent manera:

  1. Calcularem un nombre aleatori amb la funció randrand. Aquest nombre ha d’estar entre 00 i N2N-2, on NN és la mida de pp. Sigui i=rand()i = rand().

  2. Intercanviem l’element pip_i amb l’element pN1p_{N-1}.

  3. Procedim a fer el mateix que en el primer pas, però ara limitem més el nombre aleatori, que ha d’estar entre 00 i N3N-3, i intercanviarem l’element que doni la funció rand()rand() amb l’element pN2p_{N-2}.

  4. Farem això mentre hi hagi elements a intercanviar.

Cal escriure només la funció. El programa principal serà ignorat. Assumiu que en el programa principal s’ha iniciat la funció srandsrand amb paràmetre 22.

Entrada

La funció tindrà com a paràmetres un vector de reals: pp.

Sortida

Una permutació d’pp.

Informació del problema

Autoria: Jaume Baixeries

Generació: 2026-01-25T15:47:43.380Z

© Jutge.org, 2006–2026.
https://jutge.org