61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
|
||||||
1 | ||||||
Сгенерировать случайные числа в диапазоне от 1 до 2021.09.2009, 15:54. Показов 7698. Ответов 31
Метки нет Все метки)
(
Задача такова: Нужно написать рендум чисел в диапазоне например от 1 до 20 (не имеет значения).
С проверкой, что бы не повторялось число. (задание) Забежал сюда: https://www.cyberforum.ru/cpp-... 44753.html однако сказали (преподаватель), что нужно по другому. Собственно писать нужно в консольном С.
Вот генератор рендумного число. Нужна проверка на повторяемость. Помогите плз ее осуществить.
0
|
|
21.09.2009, 15:54 | |
Ответы с готовыми решениями:
31
Сгенерировать случайные действительные числа в заданном диапазоне
Как сгенерировать случайные числа в диапазоне от Ν до M, Z число раз |
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
|
|
21.09.2009, 16:05 | 2 |
заноси в массив полученные числа. тобишь перед генерацией понадобиться создать массив заданного размера. после каждой генерации будешь проверять наличие данного числа в массиве или просто флаг занятости ячейки под таким номером совпадающим с рендомным числом. если такое число есть генери снова. если нет, заполняй ячейку и в путь.
Однако, тогда потребуется отслеживать полное заполнения массива. иначе вечный цикл выйдет
1
|
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
|
|
21.09.2009, 16:08 [ТС] | 3 |
для реализации знаний не достаточно =(... Ну допустим я массив сделал. А дальше не понял что нужно...
0
|
121 / 121 / 14
Регистрация: 14.03.2009
Сообщений: 462
|
||||||
21.09.2009, 16:17 | 4 | |||||
как вариант такая реализация:
1
|
![]() 7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
21.09.2009, 16:20 | 5 |
есть "Генерация массива целых случайных чисел, которые не повторяются". Чем не подходит ?
0
|
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
|
|||||||||||
21.09.2009, 16:30 | 6 | ||||||||||
Как-то так
1
|
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
|
|
21.09.2009, 16:52 [ТС] | 7 |
TanT,
Вот оно выводит на экран все числа в рендумном порядке, а как сделать что бы только 1?
0
|
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
|
|||||||||||
21.09.2009, 17:07 | 8 | ||||||||||
убери первый while(1) тут
P.S. если в принципе не требуется такое количество генераций, то и проверка на заполнения всего массива не нужна. чисто генерация только тут
0
|
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
|
||||||
21.09.2009, 17:50 [ТС] | 9 | |||||
Не не нужно примерно так: идет цикл который длится 10 раз. И каждый раз генерируется случайное число. И в течении цикла не разу не повторяется.
То есть примерно так:
Примерно так Сгенерировало число 7 мы сделали какое то действие (например ввели папа) enter Сгенерировало число 1 мы сделали какое то действие (например ввели папа) enter Сгенерировало число 5 мы сделали какое то действие (например ввели папа) enter Сгенерировало число 10 И так до окончания цикла.... Добавлено через 25 секунд Примерно так Сгенерировало число 7 мы сделали какое то действие (например ввели папа) enter Сгенерировало число 1 мы сделали какое то действие (например ввели папа) enter Сгенерировало число 5 мы сделали какое то действие (например ввели папа) enter Сгенерировало число 10 И так до окончания цикла....
0
|
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
|
||||||
21.09.2009, 19:35 | 10 | |||||
ну тогда только
![]()
1
|
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
|
||||||
22.09.2009, 10:49 [ТС] | 11 | |||||
вот я что то запутался. Получается весь код:
0
|
Модератор
![]() ![]() ![]() ![]() 11713 / 7220 / 1710
Регистрация: 25.07.2009
Сообщений: 13,221
|
||||||
22.09.2009, 11:46 | 12 | |||||
![]() Решение
Ещё один вариант на С
0
|
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
|
|
22.09.2009, 12:29 [ТС] | 14 |
вот идет цикл который живет 10 раз... Смотрите получается
генерируется число случайное например 1 вводим переменную любую например b; b=papa; генерируется число случайное например 7 вводим переменную любую например b; b=papa; генерируется число случайное например 5 вводим переменную любую например b; b=papa; генерируется число случайное например 2 вводим переменную любую например b; b=papa; генерируется число случайное например 4 вводим переменную любую например b; b=papa; генерируется число случайное например 9 вводим переменную любую например b; b=papa; генерируется число случайное например 3 вводим переменную любую например b; b=papa; генерируется число случайное например 10 вводим переменную любую например b; b=papa; генерируется число случайное например 6 вводим переменную любую например b; b=papa; генерируется число случайное например 8 вводим переменную любую например b; b=papa; Все и выходим с цикла....
0
|
Модератор
![]() ![]() ![]() ![]() 11713 / 7220 / 1710
Регистрация: 25.07.2009
Сообщений: 13,221
|
|
22.09.2009, 12:45 | 15 |
nepster, Вам таки массив из 10 разных чисел, массив из 10 чисел, чтоб подряд двух одинаковых небыло, или 10 раз "papa" написать? В последнем случае зачем вообще что-то "генерировать"?
0
|
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
|
|
22.09.2009, 13:04 [ТС] | 16 |
не не....
Смотрите идет цикл который живет 10 раз... в течении цикла генерируется 10 раз рендумное число от 1 до 10, которое не повторяется. а вводим переменную любую например b; b=papa; просто вводим переменную... то есть начался цикл: генерация случайного числа например 7 далее нам предлагают ввести что то, мы вводим например мама, и опять генерация случайного числа например 9... в консоле примерно так [IMG]http://s54.***********/i146/0909/05/4cfe81a41134.jpg[/IMG] где т произвольная переменная а числа должны быть не повторяемые от 1 до 10, в данном случае до 5
0
|
Модератор
![]() ![]() ![]() ![]() 11713 / 7220 / 1710
Регистрация: 25.07.2009
Сообщений: 13,221
|
||||||
22.09.2009, 13:22 | 17 | |||||
![]() Решение
Не повторяется вообще, или подряд два раза не должно быть одно и то же число? В первом случае прийдётся всё-таки массив из 10 чисел заполнять, а во втором вот так как-нибудь:
![]()
0
|
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
|
|
22.09.2009, 13:39 [ТС] | 18 |
[IMG]http://s39.***********/i086/0909/04/f470b305b575.jpg[/IMG]
Все равно повторяет =(... Мне нужно из 20 вопросов, случайно вывести 10. Идет масив с вопросами, например переменная а генерирует рендумное число, и выводится рендумный вопрос, мы на него отвечаем, если правильно опять генерируется число и выводится 2 вопрос. Как правило вопросы не должны повторяться.
0
|
Модератор
![]() ![]() ![]() ![]() 11713 / 7220 / 1710
Регистрация: 25.07.2009
Сообщений: 13,221
|
||||||
22.09.2009, 14:43 | 19 | |||||
![]() Решение
Вот с этого и начинали бы
![]()
Не по теме: Запарился вопросы придумывать :)
1
|
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
|
|
22.09.2009, 15:53 [ТС] | 20 |
спс биг
0
|
22.09.2009, 15:53 | |
Помогаю со студенческими работами здесь
20
Сгенерировать случайные числа с плавающей точкой в заданном диапазоне, включающем и отрицательные значения Сгенерировать случайные числа Сгенерировать случайные числа
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |