Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.59/22: Рейтинг темы: голосов - 22, средняя оценка - 4.59
1 / 1 / 1
Регистрация: 05.02.2015
Сообщений: 260

10 миллиардов чисел

17.09.2016, 11:13. Показов 5698. Ответов 119

Студворк — интернет-сервис помощи студентам
Есть ли способ получить быстро 10 миллиардов? (000000000, 000000001, 000000002, 000000003, 000000004... 000000011, 000000012, 000000013, 000000014...9.999.999.998, 9.999.999.999 т.е. по порядку кол-во цифр обязательно 10).
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var
  q,w,e,r,t,y,u,a,s,d:integer;
begin
for q := 0 to 9 do
  for w := 0 to 9 do
    for e := 0 to 9 do
      for r := 0 to 9 do
        for t := 0 to 9 do
          for y := 0 to 9 do
            for u := 0 to 9 do
              for a := 0 to 9 do
                 for s := 0 to 9 do
                    for d := 0 to 9 do
                      begin
                      memo1.Lines.Add(IntToStr(q)+IntToStr(w)+IntToStr(e)+IntToStr(r)+IntToStr(t)+IntToStr(y)+
                      IntToStr(u)+IntToStr(a)+IntToStr(s)+IntToStr(d));
 
                      end;
memo1.Lines.SaveToFile('Строки мемо.txt');
end;
Этот способ уж очень долгий...

Добавлено через 9 минут
Либо этот способ упростить, но так что бы можно было отсчитать например 1 миллион, потом с этого же места начать
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.09.2016, 11:13
Ответы с готовыми решениями:

Хранение большого количества данных (5 миллиардов пар чисел)
Всем привет! У меня возникла следующая проблема. Необходимо хранить в программе последовательность примерно из 5 миллиардов пар чисел,...

Численность мировой интернет-аудитории достигла двух миллиардов
Международный союз телекоммуникаций (ITU) при ООН, объединяющий компании и правительственные организации из 190 с лишним стран мира,...

Найти суммы двух случайных чисел. a) целых чисел из диапазона от 50 до 100 b) вещественных чисел от 3х с половиной до 8
помогите решить Найти суммы двух случайных чисел. a) целых чисел из диапазона от 50 до 100 b) вещественных чисел от 3х с половиной...

119
20.09.2016, 00:02
Студворк — интернет-сервис помощи студентам

Не по теме:

а они то тут при чем?)

0
 Аватар для BOGG ART
592 / 459 / 147
Регистрация: 09.12.2013
Сообщений: 2,385
Записей в блоге: 2
20.09.2016, 03:19
Да не надо там БД.
Просто запустите мою прогу с ключами "/F=MD5Array.dat /N=0 /X=9999999999 /K=3" и кнопку Start. Пускай пока создаст файл на 160 гигов.
Ну и ждите когда у меня будет время для программы чтения/поиска.

Добавлено через 1 минуту

Не по теме:

И длинные числа точно не при чём. Немного больше Integer, совсем чуть, Int64 более чем хватает.



Добавлено через 2 часа 39 минут
У меня скорость обработки примерно 7753425 чисел в минуту, то есть на всё надо 21 час 30 минут. А у вас?
Надо сделать чтоб можно было дописывать в файл, "продолжать", а не затирать. По идее можно отталкиваться от размера файла.
Ну или просто в несколько разных файлов писать (по частям), а потом склеить по порядку.
Хотя тут возможно слабое место как раз запись на диск. Надо будет проанализировать...

Добавлено через 15 минут
Блин, точно. Надо оптимизировать запись в файл, что я почему-то забыл. Вот я пень. Даже не тестил, не потребовалось - так понял. :С
Напишите пожалуйста - возиться мне с этим или вы уже сделали себе итоговый файл (любым вариантом)?

Добавлено через 3 минуты

Не по теме:

Через 80 лет на форуме появится тема "10 квиндециллиардов чисел". :)

0
1 / 1 / 1
Регистрация: 05.02.2015
Сообщений: 260
20.09.2016, 06:49  [ТС]
Цитата Сообщение от BOGG ART Посмотреть сообщение
Напишите пожалуйста - возиться мне с этим или вы уже сделали себе итоговый файл (любым вариантом)?
Блин мне тоже проще с текстовым запустить, я за ночь в БД добавил 500к чисел... Смешно это.. Года 2 уйдёт на создание... Но чем искать потом, да и ещё что б прям быстро находил, вот в чём дело..
0
6004 / 4579 / 1096
Регистрация: 29.08.2013
Сообщений: 28,278
Записей в блоге: 3
20.09.2016, 09:28
Цитата Сообщение от adidas1997-21 Посмотреть сообщение
я за ночь в БД добавил 500к чисел
рано вам еще за такие задачи браться

Цитата Сообщение от adidas1997-21 Посмотреть сообщение
Но чем искать потом, да и ещё что б прям быстро находил, вот в чём дело..
для поиска нужны индексы и ХОРОШЕЕ железо

в 3-5-10 потоков можно записать все что нужно и быстро
допустим каждый 1\0\0 миллион'ов чисел в свою таблицу, делаем индекс и ищем
0
1 / 1 / 1
Регистрация: 05.02.2015
Сообщений: 260
20.09.2016, 11:38  [ТС]
Цитата Сообщение от qwertehok Посмотреть сообщение
рано вам еще за такие задачи браться
с чего рано? Я 10-ти миллионов записей не могу создать что б вообще скорость нахождения потестить, не говоря о полной таблице. Хорошее у меня железо. Потянуть должно

Добавлено через 25 минут
Блин, а обратный алгоритм написать к МД5 вообще реально?)
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,686
Записей в блоге: 21
20.09.2016, 11:50
хэш это специальная штука, придуманная как раз, чтобы ее решить можно было только тупым перебором
просто раньше скорость перебора была ниже и MD5 было не перебрать
теперь вон даже новички берутся за проблему ))
0
1 / 1 / 1
Регистрация: 05.02.2015
Сообщений: 260
20.09.2016, 12:06  [ТС]
Взяться то взялся, а как в файл размером хотя бы в 50гб найти нужное незнаю... Да и не такой уж прям новичок) Диплом скоро защищать по делфи
0
20.09.2016, 12:09

Не по теме:

Цитата Сообщение от adidas1997-21 Посмотреть сообщение
Да и не такой уж прям новичок) Диплом скоро защищать по делфи
:D

напиши в лс зачем это нужно

0
Модератор
 Аватар для D1973
9954 / 6490 / 2461
Регистрация: 21.01.2014
Сообщений: 27,495
Записей в блоге: 3
20.09.2016, 15:35
Цитата Сообщение от qwertehok Посмотреть сообщение
напиши в лс зачем это нужно
Да нет уж...
1. Обсуждение темы только в теме...
2. Блин, я думаю, всем интересно, кто смог дочитать... На 2-й странице бросить хотел, а потом втянулся
0
1 / 1 / 1
Регистрация: 05.02.2015
Сообщений: 260
20.09.2016, 15:37  [ТС]
Добрать 10 миллиардов в текстовом уже не так сложно... Сутки включённого компьютера и готово. Теперь проблемно прочитать. А если в БД то сложно очень...
0
6004 / 4579 / 1096
Регистрация: 29.08.2013
Сообщений: 28,278
Записей в блоге: 3
20.09.2016, 16:07
в общем у меня получилось создать на SQL таблицу (id, md5()) с 1 млн строк за 38 секунд
на создание 10 млрд уйдет дофига времени
на создание индексов уйдет дофига времени
на поиск ...

ну и с железом у ТС тоже не все хорошо
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,686
Записей в блоге: 21
20.09.2016, 21:46
Цитата Сообщение от qwertehok Посмотреть сообщение
напиши в лс зачем это нужно
это нужно может быть только в одном случае. автор преодолевает защиту, основанную на MD5, простым брутфорсом.
преодоление защиты и срубание денежки (из постов выше) естественно кажется более чем подозрительным
0
 Аватар для BOGG ART
592 / 459 / 147
Регистрация: 09.12.2013
Сообщений: 2,385
Записей в блоге: 2
20.09.2016, 22:02
Мне эта тема интересна как тренировка работать с большим гигантским массивом данных в файле. Заполнение и чтение и поиск.
Что-то пока моя догадка об том что тут узкое место сама запись в файл мелкими порциями как-то не особо подтверждается... Если и есть ускорение - то пока микроскопическое...

Добавлено через 7 минут

Не по теме:

Повторяю свой вопрос офтопом: если у доп-потока есть public-поле типа Int64 или Record - я могу его прочитать из формы (основного потока) без синхронизаций? Как оно изменяется в данном случае без разницы, нужно лишь значение на момент чтения.

0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,686
Записей в блоге: 21
21.09.2016, 00:02
читай на здоровье
ведь поле не у потока, поле у объекта класса TThread. К этому объекту лазит в том числе и собственно поток ОС
из потока нельзя в форму лазить, потому что везде можно задеть объекты ОС, хэндлы и т.п.
а если там тоже простое поле, то тоже будет норм. работать
0
пофигист широкого профиля
4770 / 3207 / 862
Регистрация: 15.07.2013
Сообщений: 18,615
21.09.2016, 02:05
Цитата Сообщение от BOGG ART Посмотреть сообщение
Мне эта тема интересна как тренировка работать с большим гигантским массивом данных в файле. Заполнение и чтение и поиск.
Что-то пока моя догадка об том что тут узкое место сама запись в файл мелкими порциями как-то не особо подтверждается.
Естественно, что в большинстве случаев работы с файлами на диске - Запись/чтение файла это самая времязатратная операция. Если речь не идет о чтении/записи на SSD-диск.
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,686
Записей в блоге: 21
21.09.2016, 12:13
затраты на запись в файл минимальны, ОС ведет запись в кэш
а вот когда кэш переполняется, вот тогда начинаются скачки, потому что ОС занята обработкой уже алгоритмов кэширования, сбросом, подкачкой и т.д.
поэтому всякие там БД работают помимо системного кэша. но как - я не разбирался
0
1 / 1 / 1
Регистрация: 05.02.2015
Сообщений: 260
21.09.2016, 13:51  [ТС]
Цитата Сообщение от BOGG ART Посмотреть сообщение
Мне эта тема интересна как тренировка работать с большим гигантским массивом данных в файле. Заполнение и чтение и поиск.
Что-то пока моя догадка об том что тут узкое место сама запись в файл мелкими порциями как-то не особо подтверждается... Если и есть ускорение - то пока микроскопическое...

Добавлено через 7 минут

Не по теме:

Повторяю свой вопрос офтопом: если у доп-потока есть public-поле типа Int64 или Record - я могу его прочитать из формы (основного потока) без синхронизаций? Как оно изменяется в данном случае без разницы, нужно лишь значение на момент чтения.

у меня идея вообще была типо может не писать числа 0.00000000001 =, а просто хэши в ряд по порядку и просто определять какой это номер строки и приводить к виду который надо
0
6004 / 4579 / 1096
Регистрация: 29.08.2013
Сообщений: 28,278
Записей в блоге: 3
21.09.2016, 14:05
Цитата Сообщение от adidas1997-21 Посмотреть сообщение
у меня идея вообще была типо может не писать числа 0.00000000001
ну это естественно ))
ROW_NUMBER берется как число, к нему дописывается '0.' и от этого считается md5
0
 Аватар для BOGG ART
592 / 459 / 147
Регистрация: 09.12.2013
Сообщений: 2,385
Записей в блоге: 2
22.09.2016, 09:39
Цитата Сообщение от adidas1997-21 Посмотреть сообщение
у меня идея вообще была типо может не писать числа 0.00000000001 =, а просто хэши в ряд по порядку и просто определять какой это номер строки и приводить к виду который надо
Как бы #53
Цитата Сообщение от BOGG ART
По идее у MD5 длина-то фиксированая, так что "0.0000000001 = " можно не писать, оно не нужно. Да и вроде как можно в виде числа, намного экономнее будет жрать память.
и #55
Цитата Сообщение от BOGG ART
Хранить не надо говорю - их можно высчитать по положению в файле относительно начала. И места меньше займёт и искать быстрее.
И ещё много чего говорил.
"стена дело говорит" (с)
Цитата Сообщение от northener Посмотреть сообщение
в большинстве случаев работы с файлами на диске - Запись/чтение файла это самая времязатратная операция
Ну вот я и уменьшил количество вызовов функций WriteLn/BlockWrite в 2380 раз, соответственно увеличив размер записываемого блока, но ожидаемого ускорения не получил, какой-то мизер и только на очень большом объёме данных.

Добавлено через 3 минуты
krapotkin, большое спасибо!
0
1 / 1 / 1
Регистрация: 05.02.2015
Сообщений: 260
22.09.2016, 11:35  [ТС]
Смогли разобраться? Получилось быстро найти итог?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.09.2016, 11:35

Из заданного множества целых чисел выделить множество нечётных чисел и чисел, делящихся без остатка на 17
Дано множество Xl,содержащее целые числа из диапазона . Сформировать новое множество Y путем выделения из множества Xl нечетных чисели...

Программа просит вас ввести пять чисел a1, b1, c1, d1, e1 и найти сумму положительных чисел из введенных чисел
Программа просит вас ввести пять чисел a1, b1, c1, d1, e1 и найти сумму положительных чисел из введенных чисел.

Программа просит вас ввести пять чисел a1, b1, c1, d1, e1 и найти сумму положительных чисел из введенных чисел
Программа просит вас ввести пять чисел a1, b1, c1, d1, e1 и найти сумму положительных чисел из введенных чисел.

В последовательности целых чисел найти количество чисел в которых нет 3 и 7 и наименьшее среди этих чисел
Разработать процедуру, которая в последовательности целых чисел находит количество чисел в которых нет 3-ки и 7-ки и наименьшее среди этих...

Найти произведение всех чисел, среднее арифметическое положительных чисел, квадрат суммы отрицательных чисел
Ввести z значений в переменную t. Найти произведение всех чисел, среднее арифметическое положительных чисел, квадрат суммы отрицательных...


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

Или воспользуйтесь поиском по форуму:
120
Ответ Создать тему
Новые блоги и статьи
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru