Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
LightProger
38 / 38 / 15
Регистрация: 29.12.2016
Сообщений: 291
1

Как исключить повторение цифр в rand()

19.10.2017, 20:13. Просмотров 219. Ответов 2
Метки нет (Все метки)

Здравствуйте! Пишу игру, есть функция isRandom, которая заполняет массив случайными числами, как сделать, чтобы они не повторялись?

C
1
2
3
4
5
6
7
// функция заполняет массив колоды карточек, случайными числами
void isRandom(int * x, int size)
{
    srand(time(NULL));
    int i;
    for(i = 0; i < size; i++) { x[i] = 1 + rand() % size;}
}
На скриншоте вывод программы:
0
Миниатюры
Как исключить повторение цифр в rand()  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.10.2017, 20:13
Ответы с готовыми решениями:

Как устроена функция rand()
Объясните пожалуйста как работает функция rand(). Допустим нужно найти кол-во элементов равное 0 в...

Заполнить массив случайным набором чисел от-5 до 10. Как пользоваться Rand?
Необходимо заполнить массив случайным набором чисел от -5 до 10, но проблема в операторе rand это...

Как сделать чтобы функция rand() выдавала значения в заданном диапазоне
Как сделать чтобы функция rand() выдавала значения в таком диапазоне: (32, 97-122); то есть либо...

Как исключить определенные числа из диапазона для функции rand()
Использую функцию rand для получения случайных значений в диапазоне от 1 до 52 int...

Как исключить повторение элементов в двумерном массиве при автоматическом заполнении
Имеется квадратная матрица размерностью M и содержащая элементы в диапазоне от 0 до 100 нужно...

2
MansMI
1450 / 1159 / 550
Регистрация: 08.01.2012
Сообщений: 4,509
19.10.2017, 20:18 2
Генерация массива целых случайных чисел, которые не повторяются
1
LightProger
38 / 38 / 15
Регистрация: 29.12.2016
Сообщений: 291
19.10.2017, 20:41  [ТС] 3
MansMI, Спасибо, у себя покопался, нашел, оказывается делал уже такое.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void isRandom(int * x, int size)
{
    srand(time(NULL));
    int i, j;
    for(i = 0; i < size; i++) 
    { 
        x[i] = 1 + rand() % size;
        for(j = 0; j < size; j++)
        {
            if(i != j && x[i] == x[j]) 
            { 
                while(x[i] == x[j]) { x[i] = 1 + rand() % size; }
                                 j = -1;
            }
        }
    }
}
0
Миниатюры
Как исключить повторение цифр в rand()  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2017, 20:41

Повторение чисел в rand()
Каждый раз при запуске программы b = rand() % 10; b присваивается именно значение 7.Каждый...

Исключить повторение чисел в одном ряду двойной матрицы
Есть дуэ(двоичная?) матрица. Ряды мне выдает Random(с 1-14), а колонок должно быть 6. Заполняется...

Преобразовать массив таким образом, чтобы исключить повторение элементов
помогите, пожалуйста, дали задания, но я не знаю, как работать с множествами. 1.Заполнить массив ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru