Re: масив чисел

From
Sergey Andrianov (2:5020/1507.400)
To
Evgenij Masherov
Date
2003-01-03T23:13:42Z
Area
RU.ALGORITHMS
Здравствуй, Evgenij!

Однажды 01-Jan-03  в 13:01   Evgenij Masherov (2:5020/175.2)
написал       Igor Kasyanchuk    по поводу
-=-   масив чисел  -=-

IK>>>> Kак в масив  А(10) можно закинуть 10 разных чисел от 0 до 9 чтобы
IK>>>> числа в масиве на ПОВТОРЯЛИСЬ  .
IK>>>> например 2 5 6 7 0 3 4 9 8 1
IK>>>>         7 5 4 3 8 9 1 2 0 6

SA>>>     Заполнить последовательными, заием перемешать.

IK>> Я  понял что заполнить  , А KАK ПЕРЕМЕШАТЬ , но надо так что бы
IK>> комбинации
IK>> не повторялись (хотябы их было ""100) .

EM> 100% надежный способ - связать с данным массивом А вспомогательный массив В,
EM> заполнить его случайными числами и отсортировать, причем при каждой
EM> перестановке элементов В переставлять те же (по индексу) элементы массива А.
EM> Вариант с тасовкой, а-ля сдача карт, когда массив делится на две части
EM> слуяайным образом и переставляется, требует для хорошего перемешивания 
EM> слишком много шагов, а при небольшом количестве качесто перемешивания 
EM> плохое... 

	Сложность сортировки N*log(N), плюс к тому и константа не слишком мала. Если заботиться о скорости, то следует один раз пройти по массиву, меняя текущий элемент со случайно выбранным.

                  До свидания,  в  23:12 MSK
                                 Sergey

---
 * Origin: Sergiev Posad (2:5020/1507.400)