crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> [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, 22:47) *
Дело в том, что необходимо реализовать задачу перестановки символов в строке случайным порядком

1. А! Ну, так это в чистом виде random_shuffle(), именно для подобных задач она и предназначена.
2. Квалификатор std:: не забыл?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
++Norton++
  опции профиля:
сообщение 4.10.2009, 23:02
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 98
Регистрация: 5.10.2008
Пользователь №: 380

Спасибо сказали: 0 раз(а)




Репутация:   1  


Точно! Оно самое, забыл std :) Огромное спасибо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 19.8.2018, 9:37