Collections.Shuffle Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
Shuffle(IList<Object>) |
Случайным образом перемежает указанный список с помощью источника случайности по умолчанию. |
Shuffle(IList<Object>, Random) |
Случайным образом перемежайте указанный список с помощью указанного источника случайности. |
Shuffle(IList<Object>)
Случайным образом перемежает указанный список с помощью источника случайности по умолчанию.
[Android.Runtime.Register("shuffle", "(Ljava/util/List;)V", "")]
public static void Shuffle (System.Collections.Generic.IList<object> list);
[<Android.Runtime.Register("shuffle", "(Ljava/util/List;)V", "")>]
static member Shuffle : System.Collections.Generic.IList<obj> -> unit
Параметры
- Атрибуты
Комментарии
Случайным образом перемежает указанный список с помощью источника случайности по умолчанию. Все перемутации происходят с приблизительно равной вероятностью.
Хеджирование "приблизительно" используется в описании заготовки, так как источник случайности по умолчанию является только приблизительно непредвзятым источником независимо выбранных битов. Если бы это был идеальный источник случайных выбранных битов, то алгоритм будет выбирать перемутации с идеальной единообразием.
Эта реализация проходит по списку назад, начиная с последнего элемента до второго, многократно переключяя случайным образом выбранный элемент на "текущую позицию". Элементы случайным образом выбираются из части списка, который выполняется из первого элемента в текущее положение включительно.
Этот метод выполняется в линейном времени. Если указанный список не реализует RandomAccess
интерфейс и имеет большой размер, эта реализация сбрасывает указанный список в массив перед перемешиванием и сбрасывает массив обратно в список. Это позволяет избежать четырехкратного поведения, которое приведет к перетасовке списка "последовательный доступ".
Документация по Java для java.util.Collections.shuffle(java.util.List<?>)
.
Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.
Применяется к
Shuffle(IList<Object>, Random)
Случайным образом перемежайте указанный список с помощью указанного источника случайности.
[Android.Runtime.Register("shuffle", "(Ljava/util/List;Ljava/util/Random;)V", "")]
public static void Shuffle (System.Collections.Generic.IList<object> list, Java.Util.Random rnd);
[<Android.Runtime.Register("shuffle", "(Ljava/util/List;Ljava/util/Random;)V", "")>]
static member Shuffle : System.Collections.Generic.IList<obj> * Java.Util.Random -> unit
Параметры
- rnd
- Random
источник случайности, используемый для перетасовки списка.
- Атрибуты
Комментарии
Случайным образом перемежайте указанный список с помощью указанного источника случайности. Все перемутации происходят с равной вероятностью, предполагая, что источник случайности является справедливым.
Эта реализация проходит по списку назад, начиная с последнего элемента до второго, многократно переключяя случайным образом выбранный элемент на "текущую позицию". Элементы случайным образом выбираются из части списка, который выполняется из первого элемента в текущее положение включительно.
Этот метод выполняется в линейном времени. Если указанный список не реализует RandomAccess
интерфейс и имеет большой размер, эта реализация сбрасывает указанный список в массив перед перемешиванием и сбрасывает массив обратно в список. Это позволяет избежать четырехкратного поведения, которое приведет к перетасовке списка "последовательный доступ".
Документация по Java для java.util.Collections.shuffle(java.util.List<?>, java.util.Random)
.
Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.