Witam. Mam listę
a = [1,2,3,4,5]
Jak można szybko utworzyć listę B z losowymi elementami listy a. Elementy nie mogą się powtarzać. Czyli jak pomieszać losowo listę a? Mam np. 16 milionów elementów. Trwa to bardzo długo. Czy istnieje szybki sposób?
0
1
Na wejściu i wyjściu musi być lista czy może być tablica ?
Z zapisu wynika, że masz tablicę.
Tak ogólnie to musisz poszukać algorytmów tasowania.
Pracując na tablicy losuje się 2 indeksy i zamienia wartości miejscami.
W sumie na liście też można użyć 2 wskaźniki i zamieniać wartości.
0
O tym nie pomyślałem. Dzięki.
Z zapisu wynika, że masz tablicę. A jaka róznica między listą, a tablicą? Są tablice w pythonie? Sorki, ale nie wiem.
1
A nie wystarczy Ci najprostsze rozwiązanie ?
a = [1,2,3,4,5]
b = a[:]
random.shuffle(b)
0
W pythonie pisze 2 lata, ale wciąż mnie zaskakuję. Dzięki.
0
Czas algorytmu shuffle
jest liniowy, dla dużych tablic będzie to zawsze trochę trwało.