Mam tablicę @number = [1,2,3,4,5,6,7,8,9]
Teraz chcę losowe zawartości tablicy ... coś jak np [5,3,2,6,7,1,8]
proszę kierować mi jak postępować z nim.losowanie elementy tablicy
Odpowiedz
Użyj metody shuffle
...
irb(main):001:0> [1,2,3,4,5].shuffle
=> [3, 4, 2, 5, 1]
loop n times
i = random array index
j = random array index
swap elements i and j
end
Losowe nie gwarantuje poprawnych wyników. Dlatego też zamiana elementów na dwa losowe indeksy może dać tablicę z blokami niezmienionych sekwencji w środku. Powinieneś zwiększyć od 0 do n i zrobić losowo j, aby zapewnić, że * wszystkie * elementy zostaną zamienione co najmniej raz. –
Straszne. Równe i nieparzyste 'n' daje dwa różne zestawy permutacji. To takie smutne, ale wciąż niektórzy nauczyciele uczą studentów tej metody ... Nigdy tego nie rób! – Nakilon
@Nakilon: O czym ty mówisz? Dlaczego ma znaczenie, czy n jest parzyste czy nieparzyste? – RyanHennig
komenda shuffle
zwraca randomizowane wersję tablicy
np
[1,2,3].shuffle => [2,3,1]
Działa na 1.8.7p249 –
i jeśli chcesz losować na miejscu, możesz po prostu napisać '@ number.shuffle!' – Peter
Jeśli używasz starej wersji ruby ... to zadziała
def randomize(array)
b = []
array.length.downto(1) { |n|
b.push array.delete_at(rand(n))
}
b
koniec
a = [1,2,3,4,5] B = losowy (a) drukowania B
[1,2,3,4,5,6,7,8,9].sort_by {rand}[0,9]
=> [5, 7, 3, 8, 9, 4, 2, 1, 6]
dobre dla 1.8.6 :), ale teraz nieaktualne! – horseyguy
- 1. losowanie warstwowe w Spark
- 2. Sprawdź elementy tablicy ciąg zawiera tylko elementy w innej tablicy
- 3. Przyciski radiowe + elementy tablicy
- 4. Elementy tablicy dereferencyjnej PHP
- 5. Niestandardowe losowanie wybranego elementu TTreeView
- 6. losowanie warstwowe z lasy losowe w R
- 7. Zastąp elementy przekątnej w tablicy
- 8. jQuery - elementy dostępowe w tablicy
- 9. Policz rosnące elementy w tablicy
- 10. Elementy tablicy C++ kolejność konstrukcji
- 11. Przelotowe elementy tablicy w JavaScript
- 12. Pomnożyć wszystkie elementy w tablicy
- 13. Elementy wyjściowe tablicy z Arrays.toString()
- 14. Dołącz elementy do tablicy - pętla
- 15. Java (Android): Jak skalowac losowanie bez Bitmapy?
- 16. Jak zastąpić elementy w tablicy elementami innej tablicy
- 17. Jak ukryć elementy tablicy rekordów w Numpy?
- 18. Ruby: Jak połączyć elementy tablicy z prefiksem?
- 19. Xcode: Policz elementy w tablicy łańcuchowej
- 20. usuwać elementy tablicy według określonych kryteriów
- 21. Jak odbarwiać wszystkie elementy tablicy naraz?
- 22. Jak przekazywać elementy tablicy do funkcji variadic?
- 23. C++ jak zainicjować elementy const z tablicy
- 24. Usuń zduplikowane elementy tablicy asocjacyjnej w PHP
- 25. Jak usunąć określone elementy w tablicy numpy
- 26. Ruby: metody jako elementy tablicy - jak działają?
- 27. pobierz elementy tablicy html z jquery
- 28. Puste elementy w tablicy bajtów C#
- 29. perl: policz unikatowe elementy w tablicy
- 30. Get elementy tablicy z indeksu do końca
zduplikowane http://stackoverflow.com/questions/1816378/how-to-losowo-sortuj-mieszaj-an-tablica-w-ruby – Nakilon
Twoja hipotetyczna funkcja upuściła 2 elementy z tablicy. Nawet 'shuffle' nie może tego zrobić, gg! – Nakilon