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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2016, 13:41   #21
dimon_snake
Форумчанин
 
Регистрация: 05.11.2015
Сообщений: 167
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
а дальше сравнить.
я пример для кого написал-то? алгоритм (для 32-битных целых) внутри.
но это просто пример для оценки времени брутфорса.
Так ведь после всего этого останется только сумма цифр числа, а число будет неизвестно, т.к. не влезет в числовой тип.
А с одинаковой суммой цифр ответы могут быть разными.
dimon_snake вне форума Ответить с цитированием
Старый 31.01.2016, 13:55   #22
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
Вы уж простите, поздний вечер и ...
Спасибо за подсказку. Обновил, все Ок.
да ты не 1 такой. тыщи вас!

Цитата:
либо я что-то так и не до понял, либо ...
Так, для числа: 47 программа не дает пары 23 и 24.
Сорри, это мой косяк. Забыл учесть нечётность. Исправляю!

180.png

Скачать версию 2.0.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 31.01.2016, 13:57   #23
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
а число будет неизвестно, т.к. не влезет в числовой тип.
Ну дык придётся при совпадении добавлять строку в строковый список.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 31.01.2016, 14:07   #24
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Цитата:
Сообщение от f.hump Посмотреть сообщение
как? если по определению имеет место быть "a + b + c + d + ..."
Сравнил перебор с "(a+1)*(b+1)*(c+1)*(d+1)*...":
Проверил первые 70000 чисел с нуля - совпало.
Проверил 1000 случайных чисел из диапазона [100000; 10100000) - совпало.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 31.01.2016, 14:07   #25
dimon_snake
Форумчанин
 
Регистрация: 05.11.2015
Сообщений: 167
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Ну дык придётся при совпадении добавлять строку в строковый список.
Да в том то и дело, как искать совпадения, если неизвестно число?
Зная сумму цифр числа, ничего не узнаешь. Нужно узнать само число, но ведь оно никуда не влезет. Как это исправить?
dimon_snake вне форума Ответить с цитированием
Старый 31.01.2016, 14:25   #26
dimon_snake
Форумчанин
 
Регистрация: 05.11.2015
Сообщений: 167
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Сравнил перебор с "(a+1)*(b+1)*(c+1)*(d+1)*...":
Проверил первые 70000 чисел с нуля - совпало.
Проверил 1000 случайных чисел из диапазона [100000; 10100000) - совпало.
Код такой:
Код:
var
a:array[1..100]of byte;
fi,fo:text;
i,n,k:longint;
x,y:longint;
s:string;
begin
Assign(fi,'sequence.in');
Assign(fo,'sequence.out');
Reset(fi);
Rewrite(fo);
Read(fi,x);
Str(x,s);
n:=length(s);
for i:=1 to 100 do a[i]:=0;
for i:=1 to n do val(copy(s,i,1),a[i],k);
y:=a[i]+1;
for i:=2 to n do y:=y*(a[i]+1);
Write(fo,y);
Close(fo);
end.
Сошло только для одного варианта, 11. Остальные - неправильный ответ.
Или я не так понял алгоритм...
dimon_snake вне форума Ответить с цитированием
Старый 31.01.2016, 14:25   #27
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
Да в том то и дело, как искать совпадения, если неизвестно число?
как неизвестно? это ж исходные данные, на основе которых расчёт и строится! Условно - это индекс (номер) итерации.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 31.01.2016, 14:30   #28
dimon_snake
Форумчанин
 
Регистрация: 05.11.2015
Сообщений: 167
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
как неизвестно? это ж исходные данные, на основе которых расчёт и строится! Условно - это индекс (номер) итерации.
Оно то известно, находится во входном файле. Прочитать числовым типом данных - никак, слишком большое. Остаётся строковый.
dimon_snake вне форума Ответить с цитированием
Старый 31.01.2016, 14:50   #29
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Код:
var
  fi, fo: text;
  i, n, p: longint;
  s: string;

begin
  Assign(fi, 'sequence.in');
  Assign(fo, 'sequence.out');
  Reset(fi);
  Rewrite(fo);
  Read(fi, s);
  n := length(s);
  p := 1;
  for i := 1 to n do
    p := p * (ord(s[i]) - ord('0') + 1);
  Write(fo, p);
  Close(fo);
end.
Но longint не хватит для 10^100, так что придется реализовывать длинную арифметику.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 31.01.2016, 14:55   #30
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
Прочитать числовым типом данных - никак, слишком большое. Остаётся строковый.
дык и я тебе про тож втираю.
смотри, чо нашёл.
Вложения
Тип файла: zip apmath.7z.zip (4.3 Кб, 7 просмотров)
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как уменьшить время работы программы 22hope22 C# (си шарп) 9 26.05.2013 21:41
VS 2010 - как поменять текст у кнопки во время работы программы, из .cpp файла? MrRockchip Общие вопросы C/C++ 3 21.02.2011 22:44
Как сократить время выполнения макроса? Алексей11111 Microsoft Office Excel 11 01.12.2009 20:04
Как узнать время работы программы в паскаль? bullvinkle Помощь студентам 2 26.12.2008 11:20
Как сократить время? МАКРОС! jungo Microsoft Office Excel 17 01.05.2008 12:13