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)