Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.83
Alekto
1 / 0 / 0
Регистрация: 09.09.2011
Сообщений: 51
#1

Программа с генератором случайных чисел - C++

13.09.2011, 12:55. Просмотров 3852. Ответов 30
Метки нет (Все метки)

Написать программу которая генерирует 2 целых числа от 0 до 9 и спрашивает произведение у пользователя, а потом сверяет его с верным.


среда программирования Visual Studio 2010
язык Си или Си++.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.09.2011, 12:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа с генератором случайных чисел (C++):

Работа с генератором случайных чисел - C++
Здравствуйте, уважаемые форумчане. Прошу помощи вот с такой задачей, не могу никак ничего придумать. Вот собственно задача: ...

Как работать с генератором случайных чисел - C++
В интернете нашёл мешалку для vector'a #include <algorithm> #include <functional> #include <vector> #include <set> #include...

Задать размерность вектору генератором случайных чисел - C++
Привет) Ситуация следующая: Динамический вектор. Написать программу по формированию динамического вектора целого типа. Имя вектора...

Описать функции элементов одномерного массива с генератором случайных чисел - C++
Описать функции формирования элементов одномерного массива с помощью генератора случайных чисел и изменения всех элементов массива на...

Отладка кода с генератором случайных функций - C++
Есть код генератора рандома для вызова одной из функций #include <iostream> #include <cstdlib> #include <ctime> #include <conio.h>...

Программа, генерирующая 3 последовательности из 10-и случайных чисел - C++
Приветствую, уважаемые пользователи=) Помогите пожалуйста с задачкой, или покажите, где можно прочитать о этой функции, я не с...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
fasked
Эксперт С++
4934 / 2514 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
13.09.2011, 15:28 #16
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
что это значит?
Техническое задание.. гы-гы
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
2-й пост в том топике
Там говорится о C++ и заголовках в Си стиле. А не о Си. В Си вообще нет разных стилей заголовков
-=ЮрА=-
Заблокирован
Автор FAQ
13.09.2011, 15:31 #17
Цитата Сообщение от fasked Посмотреть сообщение
вбил MaxRan чисто в целях тестирования задача стояла
А выкладываете как production code.
- задача может стоять в генерации чисел от 0 до 780 или 560, как удобней будет, так что в этом случае привёл более общий алгоритм не ограничиваясь лишь условием топика, ТС сможет использовать эту функцию для генерации любого диапазона...

Добавлено через 2 минуты
Цитата Сообщение от fasked Посмотреть сообщение
Там говорится о C++ и заголовках в Си стиле. А не о Си. В Си вообще нет разных стилей заголовков
Цитата Сообщение от Alekto Посмотреть сообщение
среда программирования Visual Studio 2010
- я к этому вёл, ладно предлагаю перейти к рассмотрению топиков у меня нет желания спорить, я привёл свой код, постившие здесь люди свой, тем самымым у ТС есть выбор, в конечном итоге наши посты направлены на помощь а не на взаимные язвы, или я не прав?
mimicria
return (true);
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
13.09.2011, 15:34 #18
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
как удобней будет, так что в этом случае привёл более общий алгоритм
Действительно, намного удобней
C++
1
2
3
4
int GetRandNum(int MaxRand) 
{ 
    return (rand()%MaxRand); 
}
-=ЮрА=-
Заблокирован
Автор FAQ
13.09.2011, 15:36 #19
Цитата Сообщение от mimicria Посмотреть сообщение
rand()%MaxRand
- это остаток от деления
256 % 10 отлично от 256, это два различных числа в итоге...
mimicria
return (true);
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
13.09.2011, 15:51 #20
Если MaxRand равно 256, то 10 и 10%256 - одни и те же числа
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,608
13.09.2011, 16:19 #21
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
в конечном итоге наши посты направлены на помощь а не на взаимные язвы, или я не прав?
За всех, конечно, не скажу, у меня язвить и в мыслях небыло. Мы тут вроде для того, чтоб чему-то научиться, а не позлорадствовать друг над дружкой. Просто на самом деле интересно, какой профит с такого замысловатого получения случайного числа? Повторюсь - в теории, особенно при небольшом RandMax функция rand() может бесконечно долго выдавать число больше. При этом конструкция
Код
rand() % RandMax
сразу вернёт число 0 <= x < RandMax... Ну а по поводу того, нужно угадать произведение, или посчитать и проверить результат - ТС молчит, как партизан, но думаю, всё-таки второй вариант...
Dekio
Фрилансер
Эксперт С++
5837 / 1218 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
13.09.2011, 16:39 #22
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <cstdlib>
 
int main()
{
    srand(time(0));
    int a;
    std::cin>>a;
    std::cout<<(a == rand()%10*rand()%10?"ja":"nein")<<std::endl;
    system("pause");
    return 0;
}
Опоздал...
fasked
Эксперт С++
4934 / 2514 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
13.09.2011, 17:42 #23
Цитата Сообщение от easybudda Посмотреть сообщение
Повторюсь - в теории, особенно при небольшом RandMax функция rand() может бесконечно долго выдавать число больше.
Попробовал генерировать либо 0 либо 1 (то есть при randMax = 2), в среднем от 10 до 13 секунд, количество опытов около 100.
grizlik78
Эксперт С++
1908 / 1440 / 111
Регистрация: 29.05.2011
Сообщений: 2,996
13.09.2011, 17:44 #24
fasked, похоже, что у тебя RAND_MAX равен 2^31-1
fasked
Эксперт С++
4934 / 2514 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
13.09.2011, 18:04 #25
Цитата Сообщение от grizlik78 Посмотреть сообщение
похоже, что у тебя RAND_MAX равен 2^31-1
еще хуже, http://www.cyberforum.ru/cgi-bin/latex.cgi?2^{32-1}
grizlik78
Эксперт С++
1908 / 1440 / 111
Регистрация: 29.05.2011
Сообщений: 2,996
13.09.2011, 18:07 #26
Ой, с таким я не сталкивался, хотя всё возможно
У меня 2 147 483 647
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
13.09.2011, 18:17 #27
А если сначала сгенерировать число от 0 до RandMax-1, а потом в полученном числе случайно выбрать цифру, тоже вариант
fasked
Эксперт С++
4934 / 2514 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
13.09.2011, 18:27 #28
Цитата Сообщение от Thinker Посмотреть сообщение
А если сначала сгенерировать число от 0 до RandMax-1, а потом в полученном числе случайно выбрать цифру, тоже вариант
Весело, но к чему такие сложности
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
13.09.2011, 18:29 #29
Цитата Сообщение от fasked Посмотреть сообщение
Весело, но к чему такие сложности
А чтобы интересно было Тем более кто сказал, что если брать остатки от деления, то распределение более равномерно, чем такой способ.
fasked
Эксперт С++
4934 / 2514 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
13.09.2011, 18:34 #30
Цитата Сообщение от grizlik78 Посмотреть сообщение
Ой, с таким я не сталкивался, хотя всё возможно
Ох, да что же это я Накосячил... у меня конечно же тоже 2147483647.

Добавлено через 3 минуты
Цитата Сообщение от Thinker Посмотреть сообщение
Тем более кто сказал, что если брать остатки от деления, то распределение более равномерно, чем такой способ.
Да никто этого не говорил. Вообще < я в манах по OpenOffice читал >, что у них (в OpenOffice) нормальное распределение получается по следующей формуле:
Код
RandNormal = sqr(-2 * log(1-rnd())) * cos(rnd() * 2 * PI)
ну это естесствено для дробных, если отбросить дробную часть, то пойдет
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.09.2011, 18:34
Привет! Вот еще темы с ответами:

Запишите шесть строк, состоящих из двух случайных чисел типа int, которые не больше 10 и трех случайных чисел - C++
Запишите шесть строк, состоящих из двух случайных чисел типа int, которые не больше 10 и трех случайных чисел типа float, что не больше...

Программа выводит пять случайных чисел вместо трех - C++
Програма выводит 5 чисел вместо 3. Почему? srand(time(0)); c = 1 + rand() % 10; x = 1 + rand() % 170; y = 1 + rand()...

Программа, помещающая 25 случайных целых чисел в диапазоне от 0 до 100 в упорядоченный список - C++
Напишите программу, которая помещает 25 случайных целых чисел в диапазоне от 0 до 100 в упорядоченный список. Вычислите сумму и среднее...

Сформировать одномерный массив целых чисел, используя датчик случайных чисел - C++
Сформировать одномерный массив целых чисел, используя датчик случайных чисел.Распечатать полученный массив. Удалить 5 первых элементов...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
13.09.2011, 18:34
Ответ Создать тему
Опции темы

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