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

From
Oleg Khovayko ()
To
Igor Kasyanchuk
Date
2002-12-29T20:16:29Z
Area
RU.ALGORITHMS
From: Oleg Khovayko <olegh@hotpop.com>

Igor Kasyanchuk wrote:
>              ────────── Здравствуй  All!:-) ─────────
> 
> 
> Как в масив  А(10) можно закинуть 10 разных чисел от 0 до 9 чтобы
> числа в масиве на ПОВТОРЯЛИСЬ  .

Ну наверное, с помошью цикла "for":
for(int i = 0; i < 10; i++) mas[i] = i;

> например 2 5 6 7 0 3 4 9 8 1
>          7 5 4 3 8 9 1 2 0 6

получится  0 1 2 ... 9, что ничем не хуже Ваших примеров,
ибо в массиве будут присутствовать 10 неповторяющихся
разных чисел, что и требовалось по условию.

Если же имеются ввиду все возможные перестановки из 10 чисел
в это массиве - то сначала инициализируем массив, как указано
выше, а потом применяем к нему next_permutation, пример использования
которой можно найти в моем сегодняшнем ответе в эту зху в треде 
"перестановки".

А если интересует одна из возможных перестановок - то какая именно?
А если любая - то чем нулевая (когда числа подряд) хуже других?
А если все же необходима некая случайная перестановка "из середины" -
то ее можно получить двумя способами - либо RND раз вызвав
next_permutation, либо же перемешав нулевую перестановку 0 .. 9.
Перемешивание же можно сделать например так:

for(int i = 9; i > 0; i--)
   swap(mas[i], mas[RND() % i]);

--- ifmail v.2.15dev5
 * Origin: Demos online service (2:5020/400)