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

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

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

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

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

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

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

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

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

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

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
gru74ik
Модератор
Эксперт CЭксперт С++
4648 / 1962 / 293
Регистрация: 20.02.2013
Сообщений: 5,225
Записей в блоге: 23
17.10.2015, 14:07 #3
Лучший ответ Сообщение было отмечено Aspirin193 как решение

Решение

Можно так (в примере числа от 5 до 155 - замени их на 1 и 10).
2
rikimaru2013
C++ Game Dev
2471 / 1140 / 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
gru74ik
Модератор
Эксперт CЭксперт С++
4648 / 1962 / 293
Регистрация: 20.02.2013
Сообщений: 5,225
Записей в блоге: 23
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
6247 / 5559 / 2529
Регистрация: 14.04.2014
Сообщений: 23,376
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
6247 / 5559 / 2529
Регистрация: 14.04.2014
Сообщений: 23,376
17.10.2015, 16:23 #9
Цитата Сообщение от Mesteriis Посмотреть сообщение
в 11 ввели
Там много всего ввели.
0
gru74ik
Модератор
Эксперт CЭксперт С++
4648 / 1962 / 293
Регистрация: 20.02.2013
Сообщений: 5,225
Записей в блоге: 23
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
gru74ik
Модератор
Эксперт CЭксперт С++
4648 / 1962 / 293
Регистрация: 20.02.2013
Сообщений: 5,225
Записей в блоге: 23
17.10.2015, 17:56 #12
Цитата Сообщение от Mesteriis Посмотреть сообщение
какое отличие rand от приведенной тобой конструкции?
Mesteriis, ну именно в данном примере - без разницы, да. А если имелось ввиду, зачем вообще в C++11 новый рэндом ввели, то вот ответ.
0
nmcf
6247 / 5559 / 2529
Регистрация: 14.04.2014
Сообщений: 23,376
17.10.2015, 20:01 #13
Цитата Сообщение от Mesteriis Посмотреть сообщение
какое отличие rand от приведенной тобой конструкции
rand() хуже масштабируется как раз для небольших диапазонов. distribution лучше работает.
0
gru74ik
Модератор
Эксперт CЭксперт С++
4648 / 1962 / 293
Регистрация: 20.02.2013
Сообщений: 5,225
Записей в блоге: 23
17.10.2015, 20:26 #14
Цитата Сообщение от nmcf Посмотреть сообщение
хуже масштабируется
это как?
0
nmcf
6247 / 5559 / 2529
Регистрация: 14.04.2014
Сообщений: 23,376
17.10.2015, 20:33 #15
Было минимум 2 темы, где жаловались на то, что идут повторы, случайности не наблюдается. Как раз с маленькими диапазонами.
0
gru74ik
Модератор
Эксперт CЭксперт С++
4648 / 1962 / 293
Регистрация: 20.02.2013
Сообщений: 5,225
Записей в блоге: 23
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
2133 / 1661 / 354
Регистрация: 15.12.2013
Сообщений: 6,597
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
2133 / 1661 / 354
Регистрация: 15.12.2013
Сообщений: 6,597
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
Привет! Вот еще темы с решениями:

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

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

Вывод значения элемента массива рандомное число раз
Как вывести значение элемента массива i раз, при условии что i это рандом с...

Продвинутый рандом (возможность задать рандомное число в нескольких диапазонах)
закончил с лабами и от скуки написал продвинутую версию рандома :D просто...


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

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

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