Найти - Пользователи
Полная версия: Ошибка в коде
Начало » Центр помощи » Ошибка в коде
1 2
py.user.next
Ну маловато это 10 членов бесконечного ряда.
FishHook
py.user.next
Ну маловато это 10 членов бесконечного ряда.
Вполне достаточно для нахождения синуса разложением в ряд Тейлора

 import math
def mysin(x):
    return x - math.pow(x, 3)/math.factorial(3) + math.pow(x, 5)/math.factorial(5) - math.pow(x, 7)/math.factorial(7) + math.pow(x, 9)/math.factorial(9)
print(math.sin(math.pi / 3) - mysin(math.pi / 3))

 >>> -4.131534248053015e-08
py.user.next
FishHook
Вполне достаточно для нахождения синуса
А почему ты использовал пять членов ряда, а не один, два, три или пятнадцать? Ведь можно просто написать x и всё.
FishHook
py.user.next
Потому что для моей задачи столько членов ряда является достаточным для достижения необходимой точности.
py.user.next
FishHook
Потому что для моей задачи столько членов ряда является достаточным
Ну, программы же пишутся не для одной задачи. Про реюз кода забыл? Почему точность эпсилон в данной задаче должна подаваться на вход в виде параметра, а не должна быть зашита внутри функции? Да потому что в разных случаях может понадобиться разная точность. И чтобы несколько функций, похожих друг на друга, не писать, пишут одну функцию с параметром. (В программировании, вообще, это называют абстрагированием кода.)
FishHook
py.user.next
Ну, программы же пишутся не для одной задачи.
Не для одной задачи, а для класса задач. Придумай инженерную задачу, где нужна точность выше третьего знака после запятой.

py.user.next
Да потому что в разных случаях может понадобиться разная точность.
В сферических случаях в вакууме. Если мне по причинам специфики предметной области не нужна и никогда не понадобится прецизионная точность вычислений, нет никакой необходимости усложнять код в угоду академическим абстракциям. Как я показал выше, пять членов ряда Тейлора обеспечивают точность вычислений до восьмого знака, что с большим запасом покрывает потребность инженерных вычислений. Ты предлагаешь переписать эту функцию таким образом, чтобы точность покрывала все мыслимые и немыслимые возможные случаи применения этой функции. Но мне это не нужно.
Вообще, это какое-то словоблудие начинается. Речь шла про факториал. Ты продолжаешь настаивать, что применение факториала не обосновано ни в каком случае?
py.user.next
FishHook
Придумай инженерную задачу, где нужна точность выше третьего знака после запятой.
А ты никогда не имел дело с сумасшедшими учёными, которые вычисляют периоды вращения звёзд и галактик, где после запятой вообще сотня знаков? В России - да, нет такого, а там они постоянно что-то вычисляют или ДНК просчитывают. Типа какая разница 1.1234 световых года или 1.1234001 световых года.

FishHook
Как я показал выше, пять членов ряда Тейлора обеспечивают точность вычислений до восьмого знака
А где ты доказал, что для любой функции этого будет достаточно? Про синус я тебе скажу даже, как ты это узнал: ты просто взял и проверил и сравнил. А если тебе просто функцию дать, ты по ней можешь сказать, сколько там членов надо суммировать для получения определённой точности? Нет, ты можешь только догадываться. А моя функция посчитает всё правильно. Я ей точность передал - и она выдала мне результат сразу.

Так я ещё могу её абстрагировать относительно самой функции, а не только точности конкретной функции (синуса или е в степени икс).
FishHook
py.user.next
А ты никогда не имел дело с сумасшедшими учёными, которые вычисляют периоды вращения звёзд и галактик, где после запятой вообще сотня знаков?

Слушай, да мне насрать на сумасшедших ученых, ты не ответил на вопрос
Речь шла про факториал. Ты продолжаешь настаивать, что применение факториала не обосновано ни в каком случае?
py.user.next
FishHook
Слушай, да мне насрать на сумасшедших ученых
Потому что ты никогда с ними не работал. Он тебе даёт какой-нибудь csv на 1000 полей и на миллион строк и везде такие числа. И он тебе говорит “давай, найди мне среднее” и что ты сделаешь питоном одним? Там думать надо. И там такое “я вот там закеширую что-то” не прокатит, потому что ты найдёшь что-то неправильное - и у него из-за этого космический корабль врежется куда-то там.

FishHook
Ты продолжаешь настаивать, что применение факториала не обосновано ни в каком случае?
А ты подумал, что я сказал, что факториал никогда не стоит вычислять? Нет, я сказал, что факториал никогда не стоит вычислять в таком классе задач. Потому что факториал в таких задачах - это как пузырьковой сортировкой сортировать какие-нибудь большие данные. Да, её написать просто и она сортирует всё нормально, но это не значит, что эта квадратная хрень вообще для этого подходит. Ты просто не дождёшься, когда она досортирует. Поэтому для этого применяют линейно-логарифмические сортировки, как бы тебе там не хотелось пузырёк свой накидать.
wiki. виды сложности

А ты говоришь “не, я вот факториал закеширую для своей задачи, где мне нужна низкая точность, и то я не знаю, где она получится низкой, а где размытой - и вот тогда я буду прав в этом разговоре”. Ты пойми, что речь идёт о целом классе задач, там нельзя выбирать “вот эти я буду факториалами делать, а вот эти - рекуррентными соотношениями”, тебе в любом случае придётся их делать по-нормальному.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB