LINUX.ORG.RU
ФорумTalks

Задача про нахождение суммы ряда чисел _без_ циклов

 , ,


0

1

Здравствуйте, дорогие любители математики и программирования!

Начинаем нашу будничную ЛОРовскую викторину на программирование и математику. Собственно, она больше на математику чем на программирование (поэтому и ответы, внезапно, могут быть разными).

Итакъ, поехали. Задача: написать программу, которая принимает на вход целые числа A и B и выводит сумму ряда целых чисел от A до B включительно. При этом перебирать числа в цикле _нельзя_. Никаких for, while, until, repeat,... и т.д.

Пример работы готовой программы:

> ./sumatob 24 40007
800299752
> ./sumatob 369 1001
433605
> ./sumatob -5000 100001
4987647501
>
Пользоваться Гуглом при решении задачи не запрещается.

Моё решение этой задачи здесь: https://saahriktu.org/downloads/sumatob.tar.xz

★★★★★

Ответ на: комментарий от gremlin_the_red

почитай ещё man install. Там тебя тоже ждут открытия, например, ключик -D.

Ну что ж, спасибо, пропатчил thundermaker.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от deep-purple

Сравнение некорректно. Я никаких формул не приводил. Я просто предложил _желающим_, которым интересно, попробовать решить задачу _любым методом_. Хоть через интегралы и высшую математику. Кому как интереснее.

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

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от michwill

А вот матрицы крутят уже не школьники. А об чём вообще разговор то?

deep-purple ★★★★★
()
Ответ на: комментарий от michwill

Интегралы решают не только школьники, тем более что бывают интегралы разной сложности и есть даже справочники с перечислением конкретных интегралов.

На 1-м курсе ВУЗа есть такой предмет как высшая математика. И там тоже в т.ч. учат решать интегралы, причём именно повышенной сложности. При этом предполагается, что человеку это знание будет практически полезно в его работе после того как он получит диплом. Не менее полезно чем те же ряды Тейлора, про которые рассказывают в этом же самом курсе высшей математики.

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от saahriktu

На 1-м курсе ВУЗа есть такой предмет как высшая математика

Это в какой богадельне так? Это типа матанализа для тупых?

gremlin_the_red ★★★★★
()
Ответ на: комментарий от gremlin_the_red

Нет, это именно основы высшей математики, которые в т.ч. позволяют на любой железяке с 4-мя арифметическими действиями реализовать синусы, косинусы, логарифмы,... и т.д. (в школе это не проходят). И многое другое.

Те же матрицы в школьном курсе не проходят, но почти все знакомятся с ними именно на 1-м курсе ВУЗа. На этом самом предмете под названием «высшая математика».

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

Что ты несешь вообще?!

UPD: калькулятор с синусом вычисляет его не через сходимость ряда, а через https://ru.wikipedia.org/wiki/CORDIC, если мне память не изменяет.

Shaman007 ★★★★★
()
Последнее исправление: Shaman007 (всего исправлений: 1)
Ответ на: комментарий от Harald

Да чтоб я помнил, это 2002й год был, кажется, а может и 2001й.

Shaman007 ★★★★★
()
Ответ на: комментарий от Shaman007

Нас на 1-м курсе учили, что именно через ряды Тейлора. Именно пример с калькулятором и приводили в качестве практического применения рядов Тейлора, да. Помню на все 180%. И даже помню где проходила та лекция. В актовом зале на первом этаже первого корпуса.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от Shaman007

Старооскольский филиал московского института стали и сплавов - СТИ НИТУ «МИСиС». Там я и получил диплом инженера информационных систем, да.

А во время обучения там я познакомился с местным сисадмином, у которого и взял Debian 3.0 Woody. И началось моё пингвиноводство, да.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

Те же матрицы в школьном курсе не проходят, но почти все знакомятся с ними именно на 1-м курсе ВУЗа. На этом самом предмете под названием «высшая математика».

Не знаю никакой «высшей математики». Матрицы мы изучали в рамках предмета «Линейная алгебра», интегралы в рамках предмета «Математический анализ», а про ряды Тейлора рассказывали ещё в школе (впрочем, это был физмат класс, не знаю, были ли они в программе общеобразовательной).

gremlin_the_red ★★★★★
()
Ответ на: комментарий от saahriktu

В данном примере в методичке написана довольно очевидная глупость. Но проблема не в методичке, а что ты не задал себе вопроса «не глупость ли там написана».

Shaman007 ★★★★★
()
Ответ на: комментарий от gremlin_the_red

В обычных 10-11-х классах всё заканчивалось логарифмами, производными, первообразными и интегралами. Весь школьный матанализ в обычном курсе сводился к исследованию функций через производные.

А вот матриц, дифференциальных уравнений, рядов Тейлора,... и т.д. в обычном школьном курсе не было.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от Shaman007

Это рассказывал преподаватель на лекции. Я про его методичку, по которой он проводил эти самые лекции.

А не задумывался я потому, что метод через ряды Тейлора тоже вполне рабочий.

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от gremlin_the_red

Про ряды Тейлора нельзя рассказать без введения понятия предела и сходимости, поэтому в школе не рассказывают, хотя про идею предела «на пальцах» говорят в контексте производной.

Вообще, весь тред, при условии, конечно, что участники не прикалываются, какой-то фейспалм. Суммирование через рекурсию определит как нефиг делать, а проблема переполнения относится к проблемам реализации чисел на компьютере и на уровне, где узнают о рекурсии, не должны обсуждаться вообще. Можно взять схему или пистон с целыми неограниченной точности.

unanimous ★★★★★
()
Ответ на: комментарий от Shaman007

Чтобы почувствовать, каким необыкновенным чудом научно-технического прогресса казался людям данный калькулятор в 1976 году, привожу цитату из статьи “Фантастическая электроника” журнала Наука и Жизнь:

“Этот калькулятор перешел Рубикон арифметики, его математическое образование шагнуло в тригонометрию и алгебру. «Электроника БЗ-18» умеет мгновенно возводить в квадрат и извлекать квадратный корень, в два приема возводить в любую степень в пределах восьми разрядов, вычислять обратные величины, вычислять логарифмы и антилогарифмы (десятичные и натуральные), тригонометрические функции. Все это не обращение к памяти, не воспроизведение справочных данных. Так, например, для вычисления синуса калькулятор сам по своей внутренней программе производит десятки арифметических операций, пользуясь известным разложением в ряд Тейлора.

Например, при вычислении функций, в которых использовалось разложение в ряд Тейлора, очищался рабочий регистр, в результате чего стирался предыдущий результат операции. В связи с этим нельзя было производить цепочные вычисления, такие как 5 + sin(2). Для этого сначала нужно было получить синус двух, а потом только прибавлять к результату 5.

может и в сам деле так было.

притом про другой каркуль уже пишут, что именно «цифра за цифрой» там было.

Калькулятор C3-15 — разрабатывался с 1974 года при участии ленинградских ученых. Этот калькулятор — полностью отечественная разработка. В основу математических формул для вычисления элементарных функций был положен метод «цифра за цифрой», который является альтернативой разложения элементарных функций в ряды Тейлора. Метод «цифра за цифрой» — итерационный метод, в основе которого вместо умножения и деления лежат функции сложения и сдвига. Он оказался очень эффективным, и в настоящее время применяется в подавляющем большинстве современных калькуляторов.

n_play
()
Ответ на: комментарий от n_play

Если я ничего не путаю, то речь идет не о 1974 году, а даже про этот век. Ну хорошо, а прежде чем утверждать полученные на первом курсе сведения загуглить не? А с первого курса его выгнали и схематехники, где все-таки рассказывали как делать кукульятор уже не было? Не, все здорово, но вот этот подход «ребята, посмотрите как я понял букварь» ну такой.

Shaman007 ★★★★★
()
Ответ на: комментарий от Shaman007

Электроника была, но сложнее сумматора там ничего не было. Потом было ещё программирование микроконтроллеров. Все остальные предметы были либо про ПК, либо (на первых курсах) гуманитарные и такие же как в школе (история, химия, физика, английский язык,... и т.д.).

Наибольший упор был на программирование (C/C++, не возбранялось юзать Delphi и Visual Basic), сети, базы данных и всякие специфические штуки наподобие SCADA.

Если я ничего не путаю, то речь идет не о 1974 году

Что Вы хотите? В середине 2000-х в этом самом ВУЗе, где я учился, я был свидетелем того, как студенты объясняли преподавателю принцип выбора ОС. Принцип был таким: если это сервер, то берём Windows NT, если не сервер, то Windows 98.

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от saahriktu

Что Вы хотите? В середине 2000-х в этом самом ВУЗе, где я учился, я был свидетелем того, как студенты объясняли преподавателю принцип выбора ОС. Принцип был таким: если это сервер, то берём Windows NT, если не сервер, то Windows 98.

Ну ты же сам должен понимать, что это не ВУЗ, а шарага уровня ПТУ, если не ниже.

gremlin_the_red ★★★★★
()
Ответ на: комментарий от gremlin_the_red

Этот самый филиал, как бы, заточен на то, чтобы быть основным поставщиком кадров для Оскольского электрометаллургического комбината (они тесно сотрудничают). Поэтому может себе позволить учить хоть по методичкам 70-х годов если на самом этом ОЭМК нужны именно такие знания. А в нашей глубинке любое предприятие может себе позволить свою атмосферу и хоть FOCAL в производственном процессе использовать.

ЗЫ. Тем не менее, эти знания не только ОЭМК ценит. В т.ч., например, при вручении мне диплома присутствовал представитель одного из местных провайдеров, который приглашал, соответственно, на работу в их организацию.

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от Shaman007

и схематехники, где все-таки рассказывали как делать кукульятор уже не было?

это где это сейчас в росийских вузах рассказывают, как делать куркулятор с аппаратным вычислением синусов :)

Harald ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.