Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 19.06.2015
Сообщений: 8

Создать d неповторяющихся рандомных чисел - не могу найти ошибку

19.06.2015, 17:22. Показов 1053. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программа должна создавать d не повторяющихся рандомных чисел, от 0 до d-1, которые сохранены в векторе.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <vector>
#include <iostream>
#include <cstdlib>
using namespace std;
 
int main(){ 
    vector<int> v;
    int d = 10;
    int r;
    do r = rand(); while (r > d-1);
    v.push_back(r);
    for (int i = 1; i < d; i++) 
        {
        for (int k = 1; k <= i; k++) do r = rand(); while ((r>9) && (v[i - k] == r));
        v.push_back(r);
        }
    for (int i = 0; i < d;i++) cout << v[i] << endl;
    system("pause");
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.06.2015, 17:22
Ответы с готовыми решениями:

На вход дается n чисел. Найти количество чисел в записи которых есть цифра 6. Не могу найти ошибку в коде
n,a,j,l:integer; procedure be(var m,i:integer); begin while m&gt;0 do begin if m mod 10 = 6 then i:=i+1 else m:= m div 10; ...

Составить плейлист на 20 мин из рандомных неповторяющихся песен
Имею список List с длительностями песен из папки (230 шт). Нужно в заданное время, Допустим 20 минут, составить плейлист общей...

Как создать массив рандомных чисел?
Как создать одномерный массив рандомных чисел?

12
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
19.06.2015, 17:31
SrNemo, логика должна быть такая:
1. заполняем вектор последовательно числами [0..d-1].
2. перемешиваем вектор
3. ???
4. PROFIT!
0
19.06.2015, 17:39

Не по теме:

Цитата Сообщение от SrNemo Посмотреть сообщение
d не повторяющихся рандомных чисел, от 0 до d-1,
очень рандомных))

0
0 / 0 / 0
Регистрация: 19.06.2015
Сообщений: 8
19.06.2015, 17:47  [ТС]
Tulosba, Понятное дело, что так можно сделать, мне просто хочется узнать в чём тут ошибка.
0
76 / 76 / 32
Регистрация: 14.04.2014
Сообщений: 408
19.06.2015, 17:56
((r>9) && (v[i - k] == r))
это логическое и, тоесть выход из цикла произойдет при любом r меньше 9.
0
0 / 0 / 0
Регистрация: 19.06.2015
Сообщений: 8
19.06.2015, 18:15  [ТС]
Fallenworld, Так как это 'и', прога должна выдавать только значения меньше девяти и не равному ни одному v[i-k].
0
76 / 76 / 32
Регистрация: 14.04.2014
Сообщений: 408
19.06.2015, 18:21
это условие выхода из цикла. Цикл заканчивается, как только оно становится ложным. оператор и возвращает false, если один или оба аргумента false.
0
0 / 0 / 0
Регистрация: 19.06.2015
Сообщений: 8
19.06.2015, 18:27  [ТС]
Fallenworld, Я думал, что цикл заканчивается, только тогда, когда оба становятся ложными. Для того, что мне нужно, есть оператор?
0
76 / 76 / 32
Регистрация: 14.04.2014
Сообщений: 408
19.06.2015, 18:30
|| оператор или
0
0 / 0 / 0
Регистрация: 19.06.2015
Сообщений: 8
19.06.2015, 18:34  [ТС]
Fallenworld, Тогда он выдаёт повторяющееся значения.
0
76 / 76 / 32
Регистрация: 14.04.2014
Сообщений: 408
19.06.2015, 18:43
C++
1
2
3
4
do{
 r = rand()%10; 
 for (int k = 0; k < i;++k) if(r==v[k]) r=-1;
}while(r==-1);
но я всеже рекомендовал бы воспользоваться способом Tulosba
0
0 / 0 / 0
Регистрация: 19.06.2015
Сообщений: 8
19.06.2015, 18:56  [ТС]
Fallenworld, Спасибо, все работает.
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
19.06.2015, 19:04
Цитата Сообщение от SrNemo Посмотреть сообщение
do r = rand(); while (r > d-1);
интересно сколько будет крутить этот цикл, если d например равно 2?
есть нормальный способ
C++
1
r=rand()%d;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.06.2015, 19:04
Помогаю со студенческими работами здесь

Сравнение чисел. Не могу найти ошибку
Пробую сравнить 2 числа. Код с кнопки double one = 8.88; double two = 5.33; if (one &gt;...

Эксперты! Одномерный массив неповторяющихся чисел не могу понять почему криво работает
Задание: Нужно вывести массив из случайных чисел. Размер массива 8. Случайные числа от 1 до 8. Числа не должны повторяться. #include...

Создать шаблонную функцию для генерации рандомных чисел
Есть код, который заполняет вектор случайными значениями типа int. Можно ли сделать шаблон для функции random_number, чтобы она...

Задан массив целых чисел. Найти количество неповторяющихся чисел в этом массиве и напечатать их
Задан массив целых чисел А1,...,АМ. Найти количество неповторяющихся чисел в этом массиве и напечатать эти числа. Например, в массиве из...

Создать бинарный файл, состоящий из неповторяющихся чисел другого файла
/*Создать файл f, состоящий из целых чисел, получить файл g, созданный с файла f исключая повторяющие числа*/ /*После введения чисел...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru