IPB
ЛогинПароль:

> Компиляция правил для данного раздела

1. Заголовок темы должен быть информативным. В противном случае тема закрывается и удаляется ...
2. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
3. Одна тема - один вопрос (задача)
4. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Последние цифры суммы, Сумма вида 1^1+2^2+3^3+...
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 5
Пол: Женский
Реальное имя: Анна Малаева

Репутация: -  0  +


Есть задача:
Цитата
Выражение 1^1+2^2+3^3+...+10^10=10405071317.
Требуется найти последние 10 цифр выражения 1^1+2^2+3^3+...+1000^1000.


Решить задачу я смогу, я уверена.)) Однако подскажите принцип решения, за что браться и с чего начинать? А то до самой всё никак не доходит.
Заранее благодарю.

Сообщение отредактировано: Анна М. -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2





Группа: Пользователи
Сообщений: 5
Пол: Женский
Реальное имя: Анна Малаева

Репутация: -  0  +


Также можно привести реализацию (частичную или полную) этой задачи на языках программирования, таких как Pascal.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 58
Пол: Мужской
Реальное имя: Максим

Репутация: -  0  +


Я думаю дело в отбрасывании старших цифр, которые не влияют на значение младших.
Например, пусть не 10 последних, а 3:
999
*
999

________
8991
8991
8991
(Перепиши это в столбик со смещением, а то с выравниванием напряги smile.gif. Красным цветом - то, что влияет, черное - отбрасываем.
При программировании надо будет взять за основу, что 10 цифр не уместятся в переменной(10 может и уместятся, но где 10 там и 11 smile.gif ), а значит придется брать массив.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Анна М. @ 30.04.2006 22:00) *

Также можно привести реализацию (частичную или полную) этой задачи на языках программирования, таких как Pascal.

Очень существенное добавление! Хорошо было бы его сделать своевременно..
Я уже поломал себе голову.. smile.gif
Конечно, это не решает всего. Но все же направление мысли корректируется.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 58
Пол: Мужской
Реальное имя: Максим

Репутация: -  0  +


Я не смог придумать никакой особой формулы вычисления этой последовательности. dry.gif
А посредством циклов эта задача довольно просто решается.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Цитата
А посредством циклов эта задача довольно просто решается.
Правда? Тогда приведи решение...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Цитата(volvo @ 1.05.2006 20:20) *

Правда? Тогда приведи решение...

У меня получилось "9110846700" - циклами, стандартными типами, пока приводить не буду smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Malice, ты меня извини, но у меня получилось что последние 19 цифр искомого числа равны 4348127819110846700 ВООБЩЕ без циклов. Простым поиском в Google.com ...

Результат - не проблема. Важно решение...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Цитата(volvo @ 1.05.2006 23:48) *

Malice, ты меня извини, но у меня получилось что последние 19 цифр искомого числа равны 4348127819110846700 ВООБЩЕ без циклов. Простым поиском в Google.com ...

lol.gif Хитрый ты. Я не стал выкладывать - думал кто еще выскажется, а так вот:
uses crt;
const mx=1.0E+16;
var l,z:extended;
i,j:integer;
begin
l:=0;
for i:=1 to 1000 do begin z:=1;
for j:=1 to i do begin z:=z*i;
z:=z-trunc(z/mx)*mx; end;
l:=l+z;l:=l-trunc(l/mx)*mx;
end;
writeln (l:0:0);
readln;
end.

Максимум 16 цифр таким способом получается, дальше точности не хватает..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Мужской
Реальное имя: Алексей

Репутация: -  0  +


а я вот чего придумал... только вот компилировать прога всё это дело упорно отказывается, а MOD убирать нельзя, иначе переполнение пойдет... пробовал применять extended для описания переменных, так он(паскаль) у меня даже с таким типом не знаком, пришел к выводу, что мой паскаль - полный отстой... ну все же принцип таков, может у кого при небольшой редакции пойдет...

Цитата
var x,a,i,s:integer;
begin
s:=0;
for x:=1 to 1000 do
begin
a:=1;
for i:=1 to x do
a:=((a*x) mod 10000000000);
s:=((s+a) mod 10000000000);
end;
write(s);
end.


Сообщение отредактировано: zZz -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гость






Цитата
может у кого при небольшой редакции пойдет...

zZz - не пойдет... Для 10 чисел отработает, и выдаст правильный результат. Для 1000 будет работать, но результат выдаст неверный...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Мужской
Реальное имя: Алексей

Репутация: -  0  +


а почему не пойдет?, я так понимаю что проблема не в моей логике, а в особенности счисления компьютера, которой, я, к своему сожалению, не знаю... так что интересно было бы разобраться с причиной сего феномена
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Гость






Цитата(zZz @ 7.05.2006 16:38)
я так понимаю что проблема не в моей логике, а в особенности счисления компьютера
Емкости целочисленных типов Турбо Паскаля не хватает... Если делать вот так (компилятор - FPC):
var
a, s: qword; { может принимать значения 0 .. 18446744073709551615 }
x, i: integer;

begin
s := 0;
for x := 1 to 1000 do begin
a := 1;
for i := 1 to x do
a := (a*x) mod 10000000000;
s := (s+a) mod 10000000000;
end;
writeln(s);
end.
, то все прекрасно считается...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Мужской
Реальное имя: Алексей

Репутация: -  0  +


ну я вообще-то и писал:
Цитата
может у кого при небольшой редакции пойдет...
- тут я имел в виду поменять типы переменных, просто кроме стандартных переменных знаю мало, а в целом-то программа работает... PS даже такую версию не компилирует, не подскажите где нормальный рабочий паскаль взять можно, а то сил моих нету с моим работать, а все что скачивал оказывалось тем же самым набором тормозов и глюков... вот такая вот беда достать в наше время рабочий паскаль((((

Сообщение отредактировано: zZz -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Гость






Цитата
тут я имел в виду поменять типы переменных
Да ты сколько хочешь меняй... Что толку, если эти типы 16-битными компиляторами не поддерживаются?

Цитата
где нормальный рабочий паскаль взять можно
Паскали разные бывают...

Здесь есть ссылки на самые распространенные:
Ссылки -> КОМПИЛЯТОРЫ
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Мужской
Реальное имя: Алексей

Репутация: -  0  +


за ссылку спасибо..., вот мысль возникла может эту тему стоит в ветку программирования перенести...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(zZz @ 7.05.2006 18:22) *

вот мысль возникла может эту тему стоит в ветку программирования перенести...

Математические задачи вполне могут рещаться с применением программирования. И, соответственно, параллельно могут возникнуть вопросы по этому самому программированию. Мне кажется, это в порядке вещей и служит первоначально поставленной цели.
Отклоняется!


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.03.2024 15:28
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name