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

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

17.09.2016, 11:13. Показов 5689. Ответов 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
1 / 1 / 1
Регистрация: 05.02.2015
Сообщений: 260
18.09.2016, 09:30  [ТС]
Студворк — интернет-сервис помощи студентам
Я не могу понять, толи плохо объясняю, толи что... Я написал выше что мне надо. И все эти числа в блокноте. Мне просто надо способ быстрее набрать эти числа и всё. Сделал чтоб таймер в 1 долю секунды делал по 3 числа. Получается быстрее. Сможет ли таймер большее число делать? Может опять плохо объясню, лучше кодом:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
procedure TForm1.Timer4Timer(Sender: TObject);
var
  myFile: TextFile;
  s1, s2, s3:string;
begin
      Application.ProcessMessages;
      S1 := '0.'+Format('%.10d', [i]);
      S2 := '0.'+Format('%.10d', [i+1]);
      S3 := '0.'+Format('%.10d', [i+2]);
      // Попытка открыть файл Test.txt для записи
      AssignFile(myFile, '1.txt');
      // Повторное открытие для добавления в конец файла заключительной строки
      Append(myFile);
      // Write this final line
      WriteLn(myFile, S1 + ' = ' + md5UTF8(trim(S1)));
      WriteLn(myFile, S2 + ' = ' + md5UTF8(trim(S2)));
      WriteLn(myFile, S3 + ' = ' + md5UTF8(trim(S3)));
      // Закрытие файла
      CloseFile(myFile);
 
      i:=i+3;
      if i>StrToInt64(edit1.text)+200000000 then timer1.Enabled:=false;
end;
0
 Аватар для BOGG ART
592 / 459 / 147
Регистрация: 09.12.2013
Сообщений: 2,385
Записей в блоге: 2
18.09.2016, 09:41
Версия Делфи? Обязательно текстовый файл? Требуемая кодировка файла? Обязательно с точкой?
И просто непонятно а нахрена их стока набирать вообще... trim лишнее. Таймеры тоже.
0
1 / 1 / 1
Регистрация: 05.02.2015
Сообщений: 260
18.09.2016, 09:44  [ТС]
xe10 se, ну я так думаю блокнот будет минимальное место занимать, есть что-то лучше, не принципиально. Кодировка тоже не волнует, главное что б я мог этот файл открыть и найти нужное. Точка обязательно (даже запятая не подойдёт т.к. кодировка уже другая будет).. Ну раз спрашиваю, значит надо... Не знаю как мне эта идея в голову залезла.. trim то почему лишнее?! Я нашёл этот код в просторах интернета. Вроде хорошо переводит, мне по крайне мере так и надо...
0
 Аватар для BOGG ART
592 / 459 / 147
Регистрация: 09.12.2013
Сообщений: 2,385
Записей в блоге: 2
18.09.2016, 10:05

Не по теме:

Любопытно как "запятая" повлияет на "кодировку"?))



Delphi
1
Application.ProcessMessages;
Лишние затраты времени.
Delphi
1
2
3
4
AssignFile(myFile, '1.txt');
Append(myFile);
...
CloseFile(myFile);
Лишние затраты времени. Выходит вы миллиард раз делаете одно и то же.
Delphi
1
trim(...)
Лишние затраты времени. Вхолостую отработает. У вас и так строка без пробелов.

Сейчас поищу как там хэши делаются...

Добавлено через 8 минут
Порядок строк в файле важен?
1
1 / 1 / 1
Регистрация: 05.02.2015
Сообщений: 260
18.09.2016, 10:08  [ТС]
md5("0,123456789") = "15b8b2cef92fa6fa8996f0a8b1bf46b5"
md5("0.123456789") = "cd7505f38a903d47e878d159c8d8df2f"

Вот так и влияет.
Цитата Сообщение от BOGG ART Посмотреть сообщение
Лишние затраты времени.
DelphiВыделить код
AssignFile(myFile, '1.txt');
Append(myFile);
...
CloseFile(myFile);
Можно тогда в нажатие кнопки запуск сделать открытие файла, а при закрытии формы закрытие файла..
0
6004 / 4579 / 1096
Регистрация: 29.08.2013
Сообщений: 28,278
Записей в блоге: 3
18.09.2016, 10:08
Цитата Сообщение от adidas1997-21 Посмотреть сообщение
И все эти числа в блокноте. Мне просто надо способ быстрее набрать эти числа и всё.
ЗАЧЕМ?

вы не сможете открыть это файл
ЗЫ можно в потоках создать х Stringlist'ов и сохранить их в разных файлах
0
1 / 1 / 1
Регистрация: 05.02.2015
Сообщений: 260
18.09.2016, 10:14  [ТС]
По сути хотелось бы по порядку, но не обязательно.

Добавлено через 5 минут
Цитата Сообщение от BOGG ART Посмотреть сообщение

Не по теме:

Любопытно как "запятая" повлияет на "кодировку"?))



Delphi
1
Application.ProcessMessages;
Лишние затраты времени.
Delphi
1
2
3
4
AssignFile(myFile, '1.txt');
Append(myFile);
...
CloseFile(myFile);
Лишние затраты времени. Выходит вы миллиард раз делаете одно и то же.
Delphi
1
trim(...)
Лишние затраты времени. Вхолостую отработает. У вас и так строка без пробелов.

Сейчас поищу как там хэши делаются...

Добавлено через 8 минут
Порядок строк в файле важен?
Сделал я что б файл открывался по нажатию на кнопку, не плохо он ускорился, спасибо...
0
 Аватар для BOGG ART
592 / 459 / 147
Регистрация: 09.12.2013
Сообщений: 2,385
Записей в блоге: 2
18.09.2016, 11:37
Хэш получать примерно вот так:
Delphi
1
2
3
Uses System.Hash;
...
S:=S+' = '+THashMD5.GetHashString(S);
Скорость выполнения мерить примерно так:
Delphi
1
2
3
4
5
6
7
Var SW: TStopWatch;
...
SW:=TStopWatch.Create();
SW.Start();
...
SW.Stop();
ShowMessage(Format('Time (in milliseconds): %d', [SW.ElapsedMilliseconds]));
Возможно стоит сначала в памяти посчитать в массив:
Delphi
1
Var HashArray: Array [1..Max] Of Record Text: String; Hash: String; End;
Пытался прикрутить TParallel, но что-то оно не алё, или одинаково или медленнее... гм...
0
1 / 1 / 1
Регистрация: 05.02.2015
Сообщений: 260
18.09.2016, 11:43  [ТС]
Я программу запустил несколько раз, она очень быстро идёт, чем ваш способ получения мд5 лучше?
0
 Аватар для BOGG ART
592 / 459 / 147
Регистрация: 09.12.2013
Сообщений: 2,385
Записей в блоге: 2
18.09.2016, 12:05
Встроенная отлаженная библиотека. Не "где-то в интернете нашлось", а с гарантией.

Уберите только таймеры, обычный цикл более чем хорош.

Добавлено через 16 минут
гм... TFileStream.Write() почему-то выходит медленнее WriteLn(). Странно. Или может я накосячил где...
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
18.09.2016, 12:07
Цитата Сообщение от BOGG ART Посмотреть сообщение
Таймеры не работают одновременно, чтоб вы знали
это с чего же ? На материнке есть микросхемка - таймер, которая генерирует прерывания. В этом прерывании идет инкремент переменной таймера(таймеров, которые были созданы), сам же, программный таймер, в свою очередь генерирует свое событие насколько он был установлен.

Добавлено через 1 минуту
Цитата Сообщение от BOGG ART Посмотреть сообщение
гм... TFileStream.Write() почему-то выходит медленнее WriteLn()
а где у FileStream вообще есть Writeln???? там есть Write и WriteBuffer
0
 Аватар для BOGG ART
592 / 459 / 147
Регистрация: 09.12.2013
Сообщений: 2,385
Записей в блоге: 2
18.09.2016, 13:30
Я случайно заигрался в сравнение скоростей и устроил TFileStream V.S. AssignFile. На моей машине TFileStream продул вчистую...

Добавлено через 1 минуту
События обрабатываются в одном потоке. Только мешает, да ещё и с задержками.

Добавлено через 11 минут
А, не, всё правильно. Это от недосыпа. TFileStream в юникоде шпарил, а WriteLn в анси. Файл в два раза больше выходил, а я не замечал)
Нет, всё равно медленнее...

Добавлено через 53 минуты
У меня вариант с таймерами как-то вообще странно копошится. Ну и сколько он у вас времени думает?
0
1 / 1 / 1
Регистрация: 05.02.2015
Сообщений: 260
18.09.2016, 13:37  [ТС]
У меня нормально вроде, можету меня тоже медленно, может еще быстрее можно.. я поставил долю секунды интервал. Все в 1-ом таймере. И не плохо летит
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
18.09.2016, 14:23
Цитата Сообщение от adidas1997-21 Посмотреть сообщение
У меня нормально вроде, можету меня тоже медленно, может еще быстрее можно.. я поставил долю секунды интервал. Все в 1-ом таймере. И не плохо летит
ну так ты представляешь с какой скоростью считает цикл? а с какой таймер?)))) таймер считает пусть "с долей" непонятно что за "доля" то такая))))) но цикл выполняется гораздо быстрее, чем времязависимый таймер)))))) я же тебе сказал что ты пишешь это от непонимания, а ты говоришь, что это не так, что ты понимаешь разницу..
0
1 / 1 / 1
Регистрация: 05.02.2015
Сообщений: 260
18.09.2016, 14:26  [ТС]
Боже мой... Я это понимаю.. но от цикла у меня комп уже не выдерживает. А таймер хоть держать может.
0
 Аватар для BOGG ART
592 / 459 / 147
Регистрация: 09.12.2013
Сообщений: 2,385
Записей в блоге: 2
18.09.2016, 14:31
В общем на моей машине лидирует вариант - сперва заполнить массив в памяти в обычном цикле, после во втором цикле записывать в файл через AssignFile. Но массив такого размера не объявить. Мож по частям как-то.
На втором месте - без массива, просто сразу записывать в файл. С другой стороны учитывая форс мажорные случаи этот вариант лучше.
А этот TParallel даже повторить результат не может, странно. Хотя я не ковырял настройки, что по умолчанию было оставил.
Цитата Сообщение от adidas1997-21 Посмотреть сообщение
комп уже не выдерживает
В каком плане? Окошко не отвечает это нормально для огромной работы.
0
1 / 1 / 1
Регистрация: 05.02.2015
Сообщений: 260
18.09.2016, 14:33  [ТС]
Цитата Сообщение от BOGG ART Посмотреть сообщение
В каком плане? Окошко не отвечает это нормально для огромной работы.
Зависает, вчера всё на этих циклах пытал.. Причём иногда зависает, через 5 минут проверяю, а он даже строчки не сохранил. Но у меня всё через мемо было...
0
 Аватар для BOGG ART
592 / 459 / 147
Регистрация: 09.12.2013
Сообщений: 2,385
Записей в блоге: 2
18.09.2016, 14:45
Мемо держит в памяти всё, и при сохранении кажись весь файл фигчит с нуля. Хотя не проверял.
Или AssignFile или TFileStream. TFileStream почему-то у меня вышел медленнее раза в полтора. Пока не понял в чём фокус.

Добавлено через 6 минут
Не, TParallel вообще начал косячить с записью. Мусор лезет. А на доп-синхронизацию уйдёт лишь ещё больше времени. Жаль, а я так хотел его испытать в деле. Возможно задача совсем неподходящая.

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

Не по теме:

Оффтопом - а сколько вообще всего возможных хешей MD5?

0
1 / 1 / 1
Регистрация: 05.02.2015
Сообщений: 260
18.09.2016, 14:47  [ТС]
Ахренеть... Сделал 10 потоков, в цикл, т.е. за 1 цикл 10 строк сразу (while) лям кб за считанные настрочил

Добавлено через 2 минуты
Только теперь беда, блокнот и нотепад не могут открыть этот файл.. Слишком велик)
0
18.09.2016, 15:06

Не по теме:

Цитата Сообщение от BOGG ART Посмотреть сообщение
Оффтопом - а сколько вообще всего возможных хешей MD5?
посчитать комбинаторикой можно же :)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.09.2016, 15:06

Из заданного множества целых чисел выделить множество нечётных чисел и чисел, делящихся без остатка на 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. Найти произведение всех чисел, среднее арифметическое положительных чисел, квадрат суммы отрицательных...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
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 и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru