LINUX.ORG.RU

Объясните как делать задание по программированию

 , ,


0

1

Задание, собственно https://ibb.co/Qr0Njjm

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



Последнее исправление: PURGEN143 (всего исправлений: 1)

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

Объясни пожалуйста, это как «с конца»?

Если ты прибавляешь во floating point к большому числу много маленьких, то за счет ошибки округления у тебя очевидно просаживается точность. Если ряд знакопеременный и плохо сходится, то ты каждый две итерации прибавляешь разность двух больших чисел и результат вообще говоря может быть любым.

Есть два простых рецепта:

  1. суммировать от меньших по модулю чисел к большим, то есть от старших членов ряда к младшим.

  2. отдельно суммировать положительные члены и отдельно отрицательные что бы увернуться от маленькой разности двух больших чисел.

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

PS еще можно члены ряда по два суммировать. В общем это надо гуглить, еще одна общая рекомендация ЕМНИП - то куда ты сумму складываешь должно иметь большую точность чем числа в которых считаются члены ряда.

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

А у Вас в голове по прежнему не знают что в программировании дофига математики?!

Не знаю как в Вашей вселенной, а вот в нашей объективной реальности подавальющему большинству из математики пригождается на практике только простая арифметика, ну может немного алгебры не сложной. Хотя надо заметить что я и прадва обманулся на визги ТС и сожержание не посмотрел )

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

«Знание математики для программиста это то же самое что знание анатомии для хирурга»(с)

У Мольера один из героев говорил прозой не зная об этом, программисты тоже юзают некоторые разделы математики об этом не догадываясь;-) Я не о манипуляциях с чиселками.

Ну и главное, матан для студента любой технической специальности это тоже самое что ОФП для спортсмена. Казалось бы зачем горнолыжнику качать спину, пресс и тд? А ЕМНИП больше половины тренировок у проф. горнолыжников это ОФП - иначе сломает в первом же агрессивном повороте на большой скорости.

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

У нас основное кол-во программистов идут потом в 1С, веб макаки и т.д. И даже те кто занимается чем-то поинтереснее, далее чем с простой арифметикой не сталкиваются на практике.

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

Общий член ряда - последнее слагаемое, не?

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

Я в общем с Вами согласен, но мы живём в реальности где погроммисты устройства ЭВМ не знают, с памятью работать не умеют и что на самом деле делает ОС для них загадка. Надо сначала хотябы в своём узком профиле их чему-то заставить учиться... Для решения прикладных задач качественно это необходимо, а математики из средней школьной программы хватило бы. У нас катастрофа дилетантизма повсеместная, уже даже сантехника или электрика вменяемого днём с огнём не найти.

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

Я к счастью физик а не программист, что там и как нынче не знаю;-)

У нас катастрофа дилетантизма повсеместная

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

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

Ну как говорит товарищ Жуков: вы можете политикой не интересоваться, однако политика вам заинтересуется обязательно. Но пожалуй и правда никчему так глубоко закапываться в вопрос. Резюмирую только что вижу этот вопрос так: у нас два подхода, где-то заваливают студентов матаном и не уделяют должного внимания профильным дисциплинам, а где-то наоборот дают набор примитивных навыков без знаний как таковых. На истину в последней инстанции не претендую, да и не всех под одну гребёнку, думаю если поискать у нас ещё есть хорошие кафедры. Однако всё равно от этого всего уже устал...

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

Я в общем не очень представляю как сейчас устроена подготовка именно программистов. Я преподавал на физтехе, сейчас немного на ВМК МГУ - но это другое.

Я вижу что есть туева хуча курсов молодого бойца из которых народ потом идет на рыночек. Учат там быстро, под какие то конкретные области и в целом конечно фигово. По хорошему программистов (рядовых) должны готовить какие то техникумы, это не задача вузов. Ну дык нынче и вузы многие упали до уровня техникумов/ПТУ, с рудиментарным преподаванием того же матана и пр. абстрактной для эникейщика галиматьи.

– ну Вы таблицу умножения хотя бы знаете?
– знаю.
– сколько будет 7х8?
– ну зачем же так издеваться…

Реальный случай из моей практики. К счастью этого вуза уже нет.

А так, да согласен.

от этого всего уже устал…

Так надо это, в отпуск, на волю, в пампасы!

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

есть такая хрень как точность, пишешь const double eps = 10e-3 и сравниваешь: while(dv > eps) { … /* приращивать значение переменной от производной dv/dx */ }

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

Съездил уже в отпуск... Привитый, маску ношу. Да куда от боевых мракобесов спрячешься, сижу без обоняния и с каким-то избыточным чувством усталости. Вчера весь день провалялся, ничего вообще делать не мог.

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

Это верно, я сам такие задачи не любил решать, но по другой причине – предлагаемые разложения мало того что часто даются без аналитической формулы, которую нужно прикинуть на глаз (что, в принципе, полезно, но в реальности может здорово подвести, если эквивалентность на некотором участке путаешь с равенством), так еще, бывает, не совпадают со значением функции, приближение которой они якобы из себя представляют. То есть название функции и ее библиотечный вариант могут и не иметь отношения к верному ответу на задачу

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

Я вкурсе что в ВУЗах нету таких специальностей. Но кто сказал что там хорошо учат, уже писал что думаю, есть ещё хорошие кафедры, но это не правило.

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

«Знания как меч самурая, если его не точить регулярно - он затупится» (с) только что придумал. Проблема в том, что знания, которые не используютсяс какой-то периодичностью - забываются. То, что я знал и понимал в универе - сейчас и 20% не вспомню, т.к. за 15 лет мне мало что пригодилось(работаю не по специальности). Так же и с математикой и программированием. Я на работе на ежедневной основе использую куски из векторной алгебры и аналитической геометрии. Все(многое), что помимо этого - уже давно забыто.

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

Судя по приведенному типу данных, исследование сходимости заключается в эмпирическом нахождении порога ошибки меньшей, чем позволяет записать приведенный формат числа и соотв. размер мантиссы (насчет long double хз, но в Си его можно привести к целому числу требуемой длины и побитово сдвигать – это зависит от стандарта на числа с плавающей запятой, но можно и арифметику длинных чисел приплести)

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

есть ещё хорошие кафедры

Может наш ТС на такой кафедре, и вот он мучается, потому что не ту специальность выбрал, а надо было в актеры идти или в кулинары…

seiken ★★★★★
()

Студент нонче пошел какой-то аутистечиный, как снежинки.

Слушай, а вы там в группе как, савсэм не разговариват? Кооперация у вас там, совмэстный работа дэлат?

Ну ты не шаришь, спроси Вано, может он шарит, Гарик там? А дэушки в группе тожи в математики не разбирают?

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

Это правда. Но еще одно назначение обучения - формирование образа мышления. Для технических специальностей это матан, для филологов это чтение тонн классики. Ничего лучшего пока не придумали.

Никто не говорит что нужно помниться весь курс матанализа через 20 лет работы - но без освоения этого курса в голове будет не хватать соответствующих нейронных связей, необходимых для нормальной работы напрямую с матаном не связаннной. Как то так

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

Для тех, кто штаны протирать приходит, часто образ мышления заключается в идее «сделай хорошо преподу, чтобы поставил автомат/не валил на зачете», и идут все философии, грамматики с математиками лесом. что, само собой, прискорбно

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

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

это каких таких связей? И для какой работы? Может их можно игрой в шахматы вырастить?

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

Может и можно. Но история образования показывает что обычно это делается матаном

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

Вот тут не соглашусь. Развивать любую личность нужно всесторонне. Сейчас очень сожалею что считал так же. Читаю книги, учу историю. Изучаю философию и с каждым днём всё сильнее поражаюсь какой же я необразованный баран.

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

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

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

Всесторонне конечно надо, но профдеформация должна быть - иначе просто не сможешь нормально работать.

Ну и время/силы ограничены. Не получится учась на физфаке МГУ прочитать все что дают филологам, физически не хватит времени. У меня был одногруппник который на 1м курсе учился очно на двух факультетах - физическоми и филологическом. Некоторые шли на вечернее/допобразорвание на гуманитарный факультет, кое кто учился сразу очно на физфаке и мехамате с какими то взаимозачетами - но что бы очно сразу на естественнонаучном и гум. факультетах, я только один такой случай знаю.

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

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

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

Возможно, но в свое время нам преследователи говорили: вы можете посчитать и 6, и 7, и 8, и 10 знаков после запятой, другой вопрос - а оправдана ли такая точность? Хотя может в этом и цель данной работы - нефиг считать лишнего

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

Профдеформация и так будет ) Другое дело что общее понимание всей науки и культуры требуется любому человеку. Надо давать людям понимание базовых медецинских вещей, понимание что такое история и почему это таки наука, а не то что они себе навоображали, основы философии и мать её хотя бы чёртову формальную логику. А то мы видим засилье псевдонауки со всякими Задорновыми и прочими Носовскими, кошмарное кол-во безмасочных антипрививочников и всё это на фоне Бузовых с Моргенштернами и прочими Козловскими в массовой культуре. Результат практический и удручающий...

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

Ну у нас на Физфаке были и история и философия. Медицину я учил у другом месте;-)

С антипрививочниками ИМНО сыграло два фактора. Во первых нельзя гнать по всем каналам всякую развесистую клюкву типа битвы экстрансенсов и потом ожидать что население останется умным и технически грамотным. Во вторых, отношения к прививке обусловлено недоверием к власти вообще и ее ковидным идиотизмом вроде обязательного ношения перчаток или закрытия парков в частности. Это конечно и население не красит (назло маме отморожу уши), но см. п.1.

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

а оправдана ли такая точность?

Это было актуально в теплые ламповые времена логарифмических линеек и арифмометров/калькуляторов. Тогда за лишние знаки снижали оценку. А сейчас все по другому… Хотя если float тянет то обычно считают именно на float-ах - быстрее.

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

У вас там ссылка в профиле мёртвая. Кстати, вы случайно не 1С-ник?

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

ЕМНИП - то куда ты сумму складываешь должно иметь большую точность чем числа в которых считаются члены ряда.

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

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

Надо всё время учиться, даже когда работаешь, иначе разучишься думать и разбираться в новом и всё, только в говночисты.

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

Неа, прискорбно то что и после ВУЗ-а это вообще-то работает, оттого так и живём.

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

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

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

понимание что такое история и почему это таки наука

история это то что было в прошлом, однако факты подтасовываются, куча инфы теряется и выходит что история превращается в даты и сказки.

peregrine ★★★★★
()

Знаю, но не расскажу - надо было об этом думать заранее.

И, бтв, матан там всё же есть. Исследование сходимости ряда - это всё же матан.

anonymous-angler ★☆
()
Ответ на: комментарий от anonymous

Почему грустно? Чем больше вот таких перцев на рынке, тем больше мне платят денег (:

hateyoufeel ★★★★★
()

Не шарю за матан, выше 3 не получал да и не надо.

Тройка, это тоже брехня.
Поэтому ни кого на этом форуме не слушай.
Лучше всего задавай вопросы @metaprog - он тут лучше всех в МАТАНЕ разбирается.

Что касается ОС, то если собираешься работать в Linux сразу же купи

бубен 

https://www.youtube.com/watch?v=FdMevzvm0tY Один вечір у селі з гармошкою і бубном.

Грабли тебе также понадобятся.

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

Начали суммировать ряд с конца - все стало нормально.

Некоторые скриптовые языки точность вычисления подстраивают под первое слагаемое.
То бишь

 1.01 + 2.0000037 скорее всего не будет равно 2.0000037 + 1.01

А вот попробуйте при вычислении элемента ряда, сделать так

 0.00 + ЗначениеЭлемента 

В SQL тоже совсем не «школьная» арифметика при вычислении выражений /все зависит от точности результата и точности слагаемых/.

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

спасибо! попробовал и ...

нашел у себя ошибку в другом месте. Теперь всё зашибись.

А разница между суммированием членов без разбора и отдельно положительных и отдельно отрицательных у меня выходит типа 1e-15. Она потихоньку вверх ползет, но там уж и ряд перестает сходиться.

Всё расчеты у меня тут в фортрановских double или complex double. Дальше уж некуда повышать.

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

В SQL тоже совсем не «школьная» арифметика при вычислении выражений /все зависит от точности результата и точности слагаемых/.

В Matematica возможно задавать точность результата вычисления выражения …
Например, хочу увидеть значение числа pi с десятью миллионами знаками после запятой

Все ok!
anonymous
()
Ответ на: спасибо! попробовал и ... от sshestov

нашел у себя ошибку в другом месте.

Ну это классика жанра;-)

Всё расчеты у меня тут в фортрановских double или complex double. Дальше уж некуда повышать.

Есть еще long double вроде, я не юзал никогда. Но опять таки, по скромному личному опыту - за очень редкими исключениями, если дабла не хватает значит с алгоритмом что то не то. Вот флотов да, тех иногда не хватает, но это типичная ситуация (условно в одной задаче из десяти). Результаты при этом забавные бывают.

ЗЫ глянул - да, long double 16 байт на традицонной 64битной платформе. Так что куда повышать есть.

AntonI ★★★★
()
Последнее исправление: AntonI (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.