Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.57/14: Рейтинг темы: голосов - 14, средняя оценка - 4.57
Aspirin193
1 / 1 / 0
Регистрация: 09.06.2015
Сообщений: 65
1

Получить рандомное число от 1 до 10

17.10.2015, 14:04. Просмотров 2530. Ответов 21
Метки нет (Все метки)

Как получить рандомное число а от 1 до 10.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2015, 14:04
Ответы с готовыми решениями:

Дано рандомное вещественное число P, найти число M после запятой
1)Дано рандомное вещественное число P, найти число М после запятой, если...

Рандомное число
Здравствуйте, в общем я пытаюсь использовать ф-цию srand, но получается...

Задать рандомное число
Собственно когда каждый раз жму ctrl-f5, то выводит одно и тоже числоа. Как...

Рандомное число в заданном интервале
Число переменной sound должно быть рандомным, но в определенных границах (от 1...

Рандомное число из *приставка*-секунд
Почему нельзя считать рандомным, скажем, число мили/микро(/нано) секунд в...

21
Kerry_Jr
Эксперт PHP
2210 / 2006 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
17.10.2015, 14:06 2
Лучший ответ Сообщение было отмечено Aspirin193 как решение

Решение

Aspirin193,
C++
1
2
srand(time(0));
int a = rand() % 10 +1;
2
sourcerer
Модератор
Эксперт CЭксперт С++
4863 / 2044 / 325
Регистрация: 20.02.2013
Сообщений: 5,545
Записей в блоге: 24
Завершенные тесты: 1
17.10.2015, 14:07 3
Лучший ответ Сообщение было отмечено Aspirin193 как решение

Решение

Можно так (в примере числа от 5 до 155 - замени их на 1 и 10).
2
rikimaru2013
C++ Game Dev
2472 / 1141 / 348
Регистрация: 30.11.2013
Сообщений: 3,709
17.10.2015, 14:07 4
Лучший ответ Сообщение было отмечено Aspirin193 как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
    srand(time(NULL));
 
 
    for(int i = 0; i < 20; i++)
    {
        int number = rand() % 10 + 1;   // rand()%10  return numbers from 0..9
        cout << number << endl;
    }
}
3
sourcerer
Модератор
Эксперт CЭксперт С++
4863 / 2044 / 325
Регистрация: 20.02.2013
Сообщений: 5,545
Записей в блоге: 24
Завершенные тесты: 1
17.10.2015, 14:13 5
Aspirin193, кстати, в приведённом мной примере более совершенная и более современная реализация генератора случайных чисел.
rand() - это вчерашний день.
0
Mesteriis
379 / 162 / 51
Регистрация: 08.08.2015
Сообщений: 1,148
Завершенные тесты: 1
17.10.2015, 16:00 6
gru74ik, Да, ты прав, но почему не могут стандартизировать приведенной тобой вариант, и обернуть его в приемлемую упаковку((((
0
nmcf
6276 / 5578 / 2538
Регистрация: 14.04.2014
Сообщений: 23,468
17.10.2015, 16:07 7
Цитата Сообщение от Mesteriis Посмотреть сообщение
не могут стандартизировать
Уже давно в стандарте.
0
Mesteriis
379 / 162 / 51
Регистрация: 08.08.2015
Сообщений: 1,148
Завершенные тесты: 1
17.10.2015, 16:22 8
nmcf, в 11 ввели? Чой то я пропустил (((

Добавлено через 1 минуту
Кстати коль про стандарты, не кто не знает что том в 14 будет, роде уже согласовали но перечень не видел не где((
0
nmcf
6276 / 5578 / 2538
Регистрация: 14.04.2014
Сообщений: 23,468
17.10.2015, 16:23 9
Цитата Сообщение от Mesteriis Посмотреть сообщение
в 11 ввели
Там много всего ввели.
0
sourcerer
Модератор
Эксперт CЭксперт С++
4863 / 2044 / 325
Регистрация: 20.02.2013
Сообщений: 5,545
Записей в блоге: 24
Завершенные тесты: 1
17.10.2015, 16:50 10
Цитата Сообщение от Mesteriis Посмотреть сообщение
Кстати коль про стандарты, не кто не знает что том в 14 будет
И C++14 тоже принят уже давно.

Цитата Сообщение от Mesteriis Посмотреть сообщение
перечень не видел не где((
Сводная таблица по поддержке C++ 11/14/17.
1
Mesteriis
379 / 162 / 51
Регистрация: 08.08.2015
Сообщений: 1,148
Завершенные тесты: 1
17.10.2015, 17:42 11
gru74ik, слушай ну вопрос такой прям концептуальный, какое отличие rand от приведенной тобой конструкции?
0
sourcerer
Модератор
Эксперт CЭксперт С++
4863 / 2044 / 325
Регистрация: 20.02.2013
Сообщений: 5,545
Записей в блоге: 24
Завершенные тесты: 1
17.10.2015, 17:56 12
Цитата Сообщение от Mesteriis Посмотреть сообщение
какое отличие rand от приведенной тобой конструкции?
Mesteriis, ну именно в данном примере - без разницы, да. А если имелось ввиду, зачем вообще в C++11 новый рэндом ввели, то вот ответ.
0
nmcf
6276 / 5578 / 2538
Регистрация: 14.04.2014
Сообщений: 23,468
17.10.2015, 20:01 13
Цитата Сообщение от Mesteriis Посмотреть сообщение
какое отличие rand от приведенной тобой конструкции
rand() хуже масштабируется как раз для небольших диапазонов. distribution лучше работает.
0
sourcerer
Модератор
Эксперт CЭксперт С++
4863 / 2044 / 325
Регистрация: 20.02.2013
Сообщений: 5,545
Записей в блоге: 24
Завершенные тесты: 1
17.10.2015, 20:26 14
Цитата Сообщение от nmcf Посмотреть сообщение
хуже масштабируется
это как?
0
nmcf
6276 / 5578 / 2538
Регистрация: 14.04.2014
Сообщений: 23,468
17.10.2015, 20:33 15
Было минимум 2 темы, где жаловались на то, что идут повторы, случайности не наблюдается. Как раз с маленькими диапазонами.
0
sourcerer
Модератор
Эксперт CЭксперт С++
4863 / 2044 / 325
Регистрация: 20.02.2013
Сообщений: 5,545
Записей в блоге: 24
Завершенные тесты: 1
17.10.2015, 20:49 16
Цитата Сообщение от nmcf Посмотреть сообщение
Было минимум 2 темы, где жаловались на то, что идут повторы, случайности не наблюдается. Как раз с маленькими диапазонами.
Ааа, да, было дело. Решается задержкой, перед "засевом":
C++
1
Sleep(800);    // подключить заголовочник windows.h
Добавлено через 4 минуты
Вот так, например:
C++
1
2
3
4
5
6
7
8
void Matrix::fill_rand(int fromNum, int toNum)
{
    Sleep(800);
    srand(time(0));
    for (int i = 0; i < m_row; ++i)
        for (int j = 0; j < m_col; ++j)
            matrix[i][j] = fromNum + rand()%(toNum - fromNum);
}
0
Mesteriis
379 / 162 / 51
Регистрация: 08.08.2015
Сообщений: 1,148
Завершенные тесты: 1
17.10.2015, 20:53 17
gru74ik, Я решал эту проблемку так
C++ (Qt)
1
2
3
4
5
6
7
8
9
8
void Matrix::fill_rand(int fromNum, int toNum)
{
  
     for (int i = 0; i < m_row; ++i)
        for (int j = 0; j < m_col; ++j)
            srand(time(0)-j);
            matrix[i][j] = fromNum + rand()%(toNum - fromNum);
}
0
S_el
2151 / 1679 / 353
Регистрация: 15.12.2013
Сообщений: 6,644
17.10.2015, 21:30 18
Mesteriis, это ничего не даст. Сама реализация генератора псевдослучайных rand() хуже чем у тех,что ввели в C++11.
0
Mesteriis
379 / 162 / 51
Регистрация: 08.08.2015
Сообщений: 1,148
Завершенные тесты: 1
17.10.2015, 21:31 19
S_el, от чего же ставил прохождения 100 повторений, всегда была разная последовательность
0
S_el
2151 / 1679 / 353
Регистрация: 15.12.2013
Сообщений: 6,644
17.10.2015, 21:33 20
Цитата Сообщение от Mesteriis Посмотреть сообщение
от чего же ставил прохождения 100 повторений, всегда была разная последовательность
Что это меняет?
0
17.10.2015, 21:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2015, 21:33

Пользователь должен отгадать рандомное число
Всем привет:-) Начал изучать c++ самостоятельно и часто посещал ваш форум как...

Почему рандомное число всегда равно 22?
#include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; int main () {...

Как задать рандомное число от 200 до 800?
Как это правильно оформить? Может кто-нибудь сказать, какой-нибудь простой для...


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

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

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