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

Рандомное число

29.06.2015, 23:54. Показов 9465. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, в общем я пытаюсь использовать ф-цию srand, но получается странно.
Пример кода:
C++
1
2
3
4
5
6
7
8
int main()
{
        srand(time(0));
    int random = rand() % 100;
    cout << random << endl;
    system("Pause");
    return 0;
}
Мне нужно рандомное число от 1 до 100, проблема в том, что выбивает рандомное но постоянно по возростанию, т.е. я вот постоянно запускаю программу заново и смотрю число и выводит примерно так:
6, 20, 27, 40, 60, 84, 97 и потом снова типо 4, 13, 22... и так постоянно по возростанию до 100 и с 1. Помогите чтобы было именно рандомно)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.06.2015, 23:54
Ответы с готовыми решениями:

Как сделать, чтобы число рандомное число менялось во время сессии?
Помогите пж. Такая проблема, randValue не меняется. #include &lt;cstdlib&gt; #include &lt;ctime&gt; #include &lt;string&gt; #include...

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

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

12
50 / 49 / 29
Регистрация: 11.11.2014
Сообщений: 332
29.06.2015, 23:56
Бывает такое. Попробуй заполнить массив рандомно и вывести его в консоль.
0
3 / 3 / 3
Регистрация: 03.11.2014
Сообщений: 80
29.06.2015, 23:57  [ТС]
Зачем массив, не понял?
0
50 / 49 / 29
Регистрация: 11.11.2014
Сообщений: 332
30.06.2015, 00:01
Avgust, Увидишь, что заполнять будет не в порядке возрастания. Только что пробовал рандомить, как в твоём примере. Действительно, заполняет по возрастанию. Но один раз получилось наоборот.
0
3 / 3 / 3
Регистрация: 03.11.2014
Сообщений: 80
30.06.2015, 00:02  [ТС]
Да, заполняет не в порядке возростания вроде, но как мне это поможет?) это довольно странное решение проблемы)
0
50 / 49 / 29
Регистрация: 11.11.2014
Сообщений: 332
30.06.2015, 00:03
А чем тебя не устраивает такое заполнение рандома?
0
3 / 3 / 3
Регистрация: 03.11.2014
Сообщений: 80
30.06.2015, 00:04  [ТС]
Так мне нужно просто одно число, мне не нужен массив
0
50 / 49 / 29
Регистрация: 11.11.2014
Сообщений: 332
30.06.2015, 00:06
Avgust, Я тебе сказал на счет массива, что бы увидеть что его заполнять будет не по возрастанию.. Чисто для примера.
0
3 / 3 / 3
Регистрация: 03.11.2014
Сообщений: 80
30.06.2015, 00:10  [ТС]
Ну я это увидел в массиве, спасибо, но с моим одним рандомным числом не помогло)
0
 Аватар для ThePlague
104 / 104 / 99
Регистрация: 30.06.2015
Сообщений: 272
30.06.2015, 02:58
Лучший ответ Сообщение было отмечено Avgust как решение

Решение

Попробуй так:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  #include <stdio.h>
  #include <stdlib.h>
  #include <time.h>
 
  void main(void)
  {
    int i;
    time_t t;
 
    time(&t);
    srand((unsigned int)t);
 
    for ( i=0; i<=10; i++ )
      printf("%d ", rand() % 100 + 1);
    printf("\n");
  }
З.Ы: Цикл только для теста.

Добавлено через 26 минут
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
    int i;
    time_t t;
 
    time(&t);
    srand((unsigned int)t);
 
    for ( i=0; i<=10; i++ )
    {
        cout << rand() % 100 + 1 << endl;
    }
    return 0;
}
Извиняюсь, вот на си++
0
Модератор
Эксперт С++
 Аватар для zss
13769 / 10962 / 6491
Регистрация: 18.12.2011
Сообщений: 29,238
30.06.2015, 07:34
Avgust, Вы не совсем разобрались в том, что такое генератор псевдослучайных чисел.
Числа начинают генерироваться от некоторого начального числа по определенному правилу.
Если брать начальное число одно и то же, то и числа будут абсолютно одинаковые.
srand(time(0)); - это попытка изменить значение этого начального числа.
time(0) - дает значение текущего времени с точностью до секунд.
Если Вы запускаете свою программу с интервалом, например, в 2 секунды,
то srand(time(0)) дает некоторую слабо возрастающую последовательность,
которая и приводит к возрастающим значениям в rand().
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
30.06.2015, 13:12
Цитата Сообщение от zss Посмотреть сообщение
дает некоторую слабо возрастающую последовательность,
которая и приводит к возрастающим значениям
Я вот кстати вот здесь даже график строил для наглядности.
0
 Аватар для ThePlague
104 / 104 / 99
Регистрация: 30.06.2015
Сообщений: 272
30.06.2015, 15:41
Так как за опорное число берется только время, по этой причине я и предложил брать не только время но и дату.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.06.2015, 15:41
Помогаю со студенческими работами здесь

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

Рандомное число в заданном интервале
Число переменной sound должно быть рандомным, но в определенных границах (от 1 до 41). Возможно ли такое? Если да, то прошу помочь. :) ...

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

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

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


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru