[C++] Генерация случайных чисел |
Здравствуйте, гость ( Вход | Регистрация )
[C++] Генерация случайных чисел |
++Norton++ |
4.10.2009, 14:49
Сообщение
#1
|
Студент Группа: Участник Сообщений: 98 Регистрация: 5.10.2008 Пользователь №: 380 Спасибо сказали: 0 раз(а) Репутация: 1 |
Подскажите пожалуйста, возможно ли сгенерировать числа от 0...n в случайном порядке, но так, чтобы они не повторялись? Например, от 0 до 10: 5 1 8 2 9 3 10 7 4 6 и т.п.
Если возможно, то подскажите как? Заранее спасибо! ----------------- P.S. Извините, за то что столько дублей создал, вышло случайно.... Сообщение отредактировал ++Norton++ - 4.10.2009, 14:51 |
|
|
Влад |
4.10.2009, 15:14
Сообщение
#2
|
Участник Группа: Участник Сообщений: 146 Регистрация: 20.3.2009 Из: Санкт-Петербург Пользователь №: 627 Спасибо сказали: 46 раз(а) Репутация: 8 |
А почему - не повторялись? Если они заведомо не будут повторяться, то к ближе к концу последовательности они не будут уже истинно случайными, разве нет?
Ну, а так - смотри функцию random_shuffle(). |
|
|
++Norton++ |
4.10.2009, 21:47
Сообщение
#3
|
Студент Группа: Участник Сообщений: 98 Регистрация: 5.10.2008 Пользователь №: 380 Спасибо сказали: 0 раз(а) Репутация: 1 |
Дело в том, что необходимо реализовать задачу перестановки символов в строке случайным порядком.
Допустим если строка из 14 символов, генерируются случайным образом числа от 0 до 14 и заносятся в массив. Тогда если нулевым элементом массива является цифра 5, то нулевой символ строки меняется местом с 5м символом этой же строки и т.д. Соответственно по этому нужно чтобы сгенерировалось 14 чисел от 0 до 14 и чтобы были все числа, т.е. небыло повторов, т.к. в противном случае не все символы строки будут перемешаны. |
|
|
++Norton++ |
4.10.2009, 22:25
Сообщение
#4
|
Студент Группа: Участник Сообщений: 98 Регистрация: 5.10.2008 Пользователь №: 380 Спасибо сказали: 0 раз(а) Репутация: 1 |
Не пойму... компилятор ругается: error: 'random_shuffle' was not declared in this scope
Странно, почему? Вроде инклуд algorithm сделал. Может его как-то еще объявить надо? |
|
|
Влад |
4.10.2009, 22:35
Сообщение
#5
|
Участник Группа: Участник Сообщений: 146 Регистрация: 20.3.2009 Из: Санкт-Петербург Пользователь №: 627 Спасибо сказали: 46 раз(а) Репутация: 8 |
|
|
|
++Norton++ |
4.10.2009, 23:02
Сообщение
#6
|
Студент Группа: Участник Сообщений: 98 Регистрация: 5.10.2008 Пользователь №: 380 Спасибо сказали: 0 раз(а) Репутация: 1 |
Точно! Оно самое, забыл std Огромное спасибо!
|
|
|
Текстовая версия | Сейчас: 28.11.2024, 22:22 |