Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2016, 18:14   #1
mitiay
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 288
По умолчанию сгенерировать цифры

Ребят подскажите как сгенерировать цифры с прогресс баром.
В общем нужно сделать генерацию цифр(16 символов) начиная с
4000000000000000(16 символов)
заканчивая
6000000000000000(16 символов)
то есть чтобы что по порядку
4000000000000001
4000000000000002
4000000000000003 и тд. в столбик
Пока не дойдет до 6 то есть 5999999999999999 - стоп
+ ко всему надо сделать прогресс бар
mitiay вне форума Ответить с цитированием
Старый 19.02.2016, 19:09   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

А в чём проблема? Длинная арифметика и всё решается.
unsigned short - четырёхбайтный. В принципе и длинная арифметика не нужна.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 19.02.2016 в 19:11.
Smitt&Wesson вне форума Ответить с цитированием
Старый 19.02.2016, 19:17   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

И куда писать это собираешься? Прикинь, текстовый файл полученный таким образом займет ~ 32 петабайта. Если вообще этот цикл без записи в файл за приемлемое время выполнится. Для сведения - 1 петабайт = 1024^2 гигабайта. Если в двоичном (int64, четырехбайтовый не пойдет) виде записывать, то займет в два с половиной раза меньше места. Дерзай
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 19.02.2016 в 19:20.
Аватар вне форума Ответить с цитированием
Старый 19.02.2016, 19:39   #4
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
И куда писать это собираешься? Прикинь, текстовый файл полученный таким образом займет ~ 32 петабайта. Если вообще этот цикл без записи в файл за приемлемое время выполнится. Для сведения - 1 петабайт = 1024^2 гигабайта. Если в двоичном (int64, четырехбайтовый не пойдет) виде записывать, то займет в два с половиной раза меньше места. Дерзай
Ну, с учётом того, что проц будет работать на частоте 1Ггц (математический) и никуда ничего не записывать, среднее время выполнения всего расчёта составит "всего" около 115 суток.
Если точнее - 115,74074074074074074074074074074 суток.

Да, можно на биткоин закинуть, разбив задачу на подзадачи. Но это будет стоить денюжки и не малой. За решение этой задачки, придётся выложить примерно $20 000. Решение придёт примерно через пол-часа, т.к. будет использоваться мощьность около миллиона ПК.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 19.02.2016 в 19:58.
Smitt&Wesson вне форума Ответить с цитированием
Старый 19.02.2016, 20:16   #5
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

2*000*000*000*000*000 = 2 офигилиона итераций цикла.
0x71AFD498D0000

можно попробовать померять скорость...
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось Вадим Мошев; 19.02.2016 в 22:08.
min@y™ вне форума Ответить с цитированием
Старый 19.02.2016, 20:31   #6
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
2*000*000*000*000*000 = 2 офигилиона итераций цикла.
0x71AFD498D0000

можно попробовать померять скорость...
Если одно вычисление делается в 1 пикосекунду (частота 1 ГГц только недавно достигнутая на супер компьютерах. Это не тактовая частота, а скорость выполнения микрокоманд вычисления), не так много получается. Всего 2 000 000 секунд.
В расчётах я брал, что одна микрокоманда, выполняется примерно за 10-20 тактов. В худшем случае получаем 40 000 000 секунд. Это 462,96296296296296296296296296296 суток. В лучшем случае - 10 000 000 секунд = 115,74074074074074074074074074074 суток.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Вадим Мошев; 19.02.2016 в 22:08.
Smitt&Wesson вне форума Ответить с цитированием
Старый 19.02.2016, 20:59   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Смитт, а точность до 30 знака для убедительности
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 19.02.2016, 21:07   #8
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

64 бита, 10 тактов, 750 GFLOPS
2*000*000*000*000*000*10/ 750 GFlops=
2*000*000*000*000*000*10/ 750 000 000 000 Flops==
20 000 000 / 750 =26 666 секунд/ 3600 ~ 8 часов.

Время без учёта временных пауз необходимых для охлаждения вычислителя. Предлагаю такие паузы взять также 8 часов. 1 секунду считаем 1 отдых.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .

Последний раз редактировалось Pavia; 19.02.2016 в 21:10.
Pavia вне форума Ответить с цитированием
Старый 19.02.2016, 21:20   #9
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Смитт, а точность до 30 знака для убедительности
Это расчёты Виндовского калькулятора. Просто скопипастил . Там идёт бесконечная дробь. Можно и 100500 разрядов озвучить .
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 19.02.2016, 21:26   #10
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
64 бита, 10 тактов, 750 GFLOPS
2*000*000*000*000*000*10/ 750 GFlops=
2*000*000*000*000*000*10/ 750 000 000 000 Flops==
20 000 000 / 750 =26 666 секунд/ 3600 ~ 8 часов.

Время без учёта временных пауз необходимых для охлаждения вычислителя. Предлагаю такие паузы взять также 8 часов. 1 секунду считаем 1 отдых.
Расчёты не верны. 1 Гигафлопс, это одна операция за одну пикосекунду. 750 Гигафлопс, это 750 операций за одну пикосекунду. Т.е. Частота процессора должна быть, как минимум 7,5 террагерц.
Не делить нужно на 750, а умножать. И, как я говорил выше,одна операция, делается как минимум за 10 тактов.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 19.02.2016 в 21:33.
Smitt&Wesson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как записать в Екселе цифры c степенью или индексом, так чтоб цифры считало, индексы (степень) игнор Andrew_K1982 Microsoft Office Excel 7 06.03.2013 23:10
Сгенерировать матрицу Татьяна123456 Общие вопросы C/C++ 0 14.11.2012 21:32
задача - найти произведение первой цифры целой части и третей цифры дробной части вещественного числа. LAZARUS maks22 Lazarus, Free Pascal, CodeTyphon 2 30.01.2012 19:53
сгенерировать звуковой файл NickolayNest Общие вопросы C/C++ 14 21.12.2011 20:07
Сортирует цифры по строкам, а надо чтобы сортировала цифры , записанные через пробелы Алексей_xXx Помощь студентам 14 06.05.2009 17:42