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

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

29.06.2015, 23:54. Показов 9549. Ответов 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
13778 / 10971 / 6491
Регистрация: 18.12.2011
Сообщений: 29,256
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
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru