Wygenerowanie niepowtarzających się ciągów

0

Hej, nie mam pomysłu jak mogę wygenerować optymalnie m ciągów zawierających n elementów, muszą to być wylosowane ciągi.

np.
{1,2,3,4}
{1,3,2,4}

0

Klasa Random, generujesz liczbę i sprawdzasz czy nie ma jej już w ciągu - jeśli nie, to dodajesz do ciągu.

0

Wpierw tworzysz jeden ciąg, potem tworzysz wszystkie jego permutacje, a potem losujesz jedną z permutacji.

0

Mi się wydaje że:

  1. Tworzysz Listę "n elementów"
  2. Do Listy dodajesz elementy z których może składać się ciąg
  3. Robisz pętlę for odpowiedzialną za rząd mutacji
  4. Robisz pętlę for odpowiedzialną za iteracje mutacji
  5. Robisz permutacje. prosta rekurencja :

**{1,2,3,4} -> {2,1,3,4} -> {2,3,1,4} -> **
**{2,3,4,1} -> {3,2,4,1} -> {3,4,2,1} -> **
**{3,4,1,2} -> {4,3,1,2} -> {4,1,3,2} -> **
{4,1,2,3} -> {1,4,2,3} -> {1,2,4,3}

{1,2,3,4} ->** {1,3,2,4} -> {1,3,4,2} -> **
{2,3,4,1} ->** {2,4,3,1} -> {2,4,1,3} -> **
{3,4,1,2} ->** {3,1,4,2} -> {3,1,2,4} -> **
{4,1,2,3} ->** {4,2,1,3} -> {4,2,3,1}**

{1,2,3,4} -> {1,3,2,4} ->** {1,3,2,4} -> **
{2,3,4,1} -> {2,4,3,1} ->** {2,4,3,1} -> **
{3,4,1,2} -> {3,1,4,2} ->** {3,1,4,2} -> **
{4,1,2,3} -> {4,2,1,3} -> {4,2,1,3}

Wyniki na wszelki wypadek zbieraj w secie, bo jak lista elementów będzie następująca {1,1,3,4} to Ci trochę powtórzeń wyjdzie.
No chyba, że masz założenia że elementy są różne to wtedy wygodniej z listy losować. :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1