Вопрос Что делать, если команда rand() выводит одно число несколько раз? C++

Регистрация
17 Апр 2013
Сообщения
80
Репутация
0
Спасибо
0
Монет
0
#include

using namespace std;

int main()
{
int a;
setlocale(LC_ALL, "Russian");
cout << "Введите размер массива: ";
cin >> a;

int *ptr_away = new int[a];

for (int i = 0; i < a; i++)
{
ptr_away = rand() % 100;
}
for (int i = 0; i < a; i++)
{
cout << " " << *ptr_away;
}
cout << " " << endl;
cout << "Спасибо за работу со мной!" << endl;

delete[] ptr_away;
cin.get();
return 0;

}
 
Это природа псевдослучайных чисел, братишка. Видимо ты отдаешь рандомизирующей функции одно и то же основание.
 
Ну вот бросаешь кубик. Шесть граней. И три раза подряд выпало шесть очков. Какая вероятность, что в следующий раз выпадет шесть? Одна шестая!
 
Да всё просто же: в последнем цикле первый элемент *ptr_away всё время распечатывается. Почему не ptr_away?
 
Это свойство любых случайных событий - они могут повторяться. Если тебе это мешает, значит, твои события не случайны и эта функция в чистом виде тебе не подходит. Напиши свою функцию, которая будет давать уникальные значения.
 
чтобы рандомное число от rand() - не повторялось обнови Генератор случайных чисел -- srand ( time(NULL) ); // вместо time() можете указать свое число -- Функция srand выполняет инициализацию генератора случайных чисел rand. --- Генератор псевдо-случайных чисел инициализируется с -- помощью аргумента seed, который играет роль зерна. пример функции srand() cppstudio.com/post/841/
 
Назад
Сверху