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

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

Войти
Регистрация
Восстановить пароль
 
 
newbie666
Заблокирован
#1

Как генерить монотонно возрастающие числа? - C++

02.09.2013, 11:56. Просмотров 907. Ответов 22
Метки нет (Все метки)

Привет! Суть проблемы такова. Надо генерить длинные (long long) числа, чтоб они были всё время разные и плавно возрастающие. Генериться они должны всегда правильно, вне зависимости от того, сколько раз подряд была запущенна программа, сколько раз компьютер был перезагружен и тд... Понятно, что в принципе тут надо завязываться на дату, но тут так же возникает проблема - если этот генератор запускать в цикле, то текущее время просто не успевает обновится и номера остаются одинаковыми....
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.09.2013, 11:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как генерить монотонно возрастающие числа? (C++):

Visual Studio: Вывести номера столбцов матрицы, элементы которых образуют монотонно убывающую или монотонно возрастающую последовательность - C++
Здравствуйте, прошу помощи. Вопрос жизни и смерти. В программировании вообще что-то тяжко. С горем попалам сдаю. 1 курс... тяжело... ...

Проверить, монотонно ли растут числа в массиве - C++
{ int a={1,8,56,98,25,-9,45,64,17,5,79}; for (int k = 0; k < 12; k++) { bool swaped=false; for (int i = 0; i < 12-1; i++) { ...

Распечатать возрастающие серии последовательности в обратном порядке - C++
Пусть дана последовательность целых чисел. Распечатать возрастающие серии последовательности в обратном порядке. Серия - это упорядоченна...

Нужно вывести все возможные возрастающие 6-ти значные комбинации - C++
Задачка: Нужно вывести все возможные возрастающие 6-ти значные комбинации из промежутка чисел <0,100> Подкиньте пару идей.

Распечатать возрастающие последовательности заданных чисел в обратном порядке - C++
Ребят, помогите, у меня такое задание: Считая, что элементами стека являются целые числа, распечатать возрастающие ...

Найти максимально длинные возрастающие последовательности чисел массива - C++
Попалась такая задача, только вот не пойму, что значит максимально длинные возрастающие последовательности. Этот же вопрос есть на форуме,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,061
Завершенные тесты: 1
02.09.2013, 12:00 #2
легче тогда завязать не на время, а просто при выходе программы сохранять последнее значение в файл например
1
newbie666
Заблокирован
02.09.2013, 12:09  [ТС] #3
Цитата Сообщение от Raali Посмотреть сообщение
просто при выходе программы сохранять последнее значение в файл например
ну так то оно так, но в моём случае возможен крах системы и соответственно все файла тоже крякнут... А хотелось бы не завязываться на локал хост, а просто получать дату и время с сервера например или ещё как - то ...
0
vndtta
90 / 67 / 13
Регистрация: 17.10.2011
Сообщений: 235
Завершенные тесты: 1
02.09.2013, 12:13 #4
Цитата Сообщение от newbie666 Посмотреть сообщение
... если этот генератор запускать в цикле, то текущее время просто не успевает обновится и номера остаются одинаковыми....
обычно генератор случайных чисел 1 раз инициализируется(текущим временем), а потом генерериуются ичсла из псвевдослучайной последовательности

http://www.cplusplus.com/reference/c...rand/?kw=srand
0
newbie666
Заблокирован
02.09.2013, 12:17  [ТС] #5
Цитата Сообщение от vndtta Посмотреть сообщение
обычно генератор случайных чисел 1 раз инициализируется(текущим временем), а потом генерериуются числа из псвевдослучайной последовательности
Всё верно, но этот номер может повторится при повторном запуске программы.... А если учесть, что программа будет запускаться тысячи раз, то уникальность случайных номеров, даже в формате long long ставится под вопрос....
0
0x10
2464 / 1636 / 238
Регистрация: 24.11.2012
Сообщений: 4,031
02.09.2013, 12:20 #6
Меня вообще смущают в одном контексте слова "случайные" и "монотонно возрастающие".
0
Thinker
Эксперт C++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
02.09.2013, 12:21 #7
Цитата Сообщение от 0x10 Посмотреть сообщение
Меня вообще смущают в одном контексте слова "случайные" и "монотонно возрастающие".
более того,
Цитата Сообщение от newbie666 Посмотреть сообщение
плавно возрастающие.
0
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,061
Завершенные тесты: 1
02.09.2013, 12:25 #8
Цитата Сообщение от vndtta Посмотреть сообщение
Всё верно, но этот номер может повторится при повторном запуске программы
одной и той же даты, учитывая год, быть 2 раза не может) только в другом измерении наверное

Цитата Сообщение от 0x10 Посмотреть сообщение
Меня вообще смущают в одном контексте слова "случайные" и "монотонно возрастающие".
наверное что то типа

C++
1
num[a] = num[a-1] + rand()%2;
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,529
Завершенные тесты: 1
02.09.2013, 12:31 #9
Цитата Сообщение от newbie666 Посмотреть сообщение
программа будет запускаться тысячи раз, то уникальность случайных номеров, даже в формате long long ставится под вопрос
Положите в коробку два шарика - черный и белый. Достаньте из нее один. Запомните цвет извлеченного. Положите обратно. Посмотрите на звезды, почитайте бальмонта, полистайте календарь майя. Теперь достаньте еще раз шар из коробки. Какова вероятность, что он будет такого же цвета как в прошлый раз?

Это я к тому, что если так критично появление тех же чисел в заданном диапазоне, исключайте их.
Или придумайте кардинально новый подход к генерации псевдослучайных чисел. Но опыт поколений показал, что это не так-то и просто.

Добавлено через 51 секунду
Цитата Сообщение от Raali Посмотреть сообщение
одной и той же даты, учитывая год, быть 2 раза не может
12.12.12
0
Thinker
Эксперт C++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
02.09.2013, 12:32 #10
Цитата Сообщение от Raali Посмотреть сообщение
C++
1
num[a] = num[a-1] + rand()%2;
не стыкуется
Цитата Сообщение от newbie666 Посмотреть сообщение
чтоб они были всё время разные
0
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,061
Завершенные тесты: 1
02.09.2013, 12:36 #11
Цитата Сообщение от Thinker Посмотреть сообщение
Сообщение от newbie666
чтоб они были всё время разные
если перед запуском делать srand от даты, то будут разные

Цитата Сообщение от SatanaXIII Посмотреть сообщение
12.12.12
и когда второй раз при нашей жизни такое будет
0
Thinker
Эксперт C++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
02.09.2013, 12:39 #12
Цитата Сообщение от Raali Посмотреть сообщение
если перед запуском делать srand от даты, то будут разные
речь не о srand, а об алгоритме

Цитата Сообщение от Raali Посмотреть сообщение
num[a] = num[a-1] + rand()%2;
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,529
Завершенные тесты: 1
02.09.2013, 12:43 #13
Цитата Сообщение от Raali Посмотреть сообщение
и когда второй раз при нашей жизни такое будет
В сто двенадцатом году. "Проблема две тысячи" - не слыхали?
Я к тому, что от формата зависит.

Цитата Сообщение от Raali Посмотреть сообщение
если перед запуском делать srand от даты, то будут разные
ТС говорит, что возможен вариант запуска второй копии программы, при еще не сменившемся значения времени. Надо какую-нибудь развертку монитора тогда уж приплетать. )
1
newbie666
Заблокирован
02.09.2013, 12:55  [ТС] #14
да..... думаю случайного генератора в размерности Long long будет достаточно ))) Вот где бы взять такой генератор, что б генерил огромные числа в формате unsigned Long long и чтоб можно было бы задавать кол-во циферок, тоесть чтоб все номера были бы одной длинны как бы, например, максимальной для беззнакового long long ....
0
0x10
2464 / 1636 / 238
Регистрация: 24.11.2012
Сообщений: 4,031
02.09.2013, 13:03 #15
Короче, пошла какая-то муть.
Автор, сформулируйте задачу полностью.

Не по теме:

id пользователя генерит чтоли...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.09.2013, 13:03
Привет! Вот еще темы с ответами:

Элементы монотонно возрастают - C++
Здравствуйте. Есть задача, где нужно подсчитать количество участков в массиве, на которых элементы массива монотонно возрастают. ...

Поиск максимальной по длине монотонно неубывающей подпоследовательности вещественных чисел - C++
Напишите на языке C / C++ программу поиска максимальной по длине монотонно неубывающей подпоследовательности во входной последовательности...

Вывести количество строк1|стобцов2, элементы которых монотонно возрастают3|убывают4 - C++
Добрый день ребят. 1. (С++): Дана матрица размера 5 x 10. Вывести количество строк1|стобцов2, элементы которых монотонно...

Найти количество участков, на которых монотонно убывают элементы динамического массива - C++
Дан массив размера N.Найти количество участков, на которых его элементы монотонно убывают.


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

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

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