Анон, как мы знаем, двач полон программистов 300кк/наносек. Помогите решить задачу. Нужно вычислить значение суммы интегралов Френеля (два интеграла, от sin(x^2) и cos(x^2) соответственно) на отрезке от нуля до входного Х.Точность - до пятого знака включительно. Ограничения по времени - анальные.Попробовал метод бесконечного количества бесконечно малых прямоугольников - не укладываюсь во время: нужная точность достигается при 200 млн прямоугольников, а за заданное время успеваю обработать только около 16 млн.Вот код: double x;cin >> x; double cap = 200Math.pow(10,6); double length = x/cap; double sum = 0.0; double i = length/2; while (i<x) { double pow = ii; sum = sum + length (Math.sin(pow)+Math.cos(pow)); i = i + length; } write((Math.ceil(sum Math.pow(10, 5)) / Math.pow(10, 5))+""); Знаю, что хуйня, обоссывайте, но помогите.
Сука макаба сожрала звёздочки умножения
Ну лан там понятно что где
Бамп
У тебя код можно на порядок сократить, скорее всего и уложишься по времени
>>165489990 (OP)1) Пиши на си2) Используй AVX/AVX2Плюс, можешь заранее загенерить и сохранить таблицу синусов-косинусов, или придумать более эффективный способ их расчёта, чем в стандартной либе.Но в первую очередь - AVX2.
>>165490364Как?
Иу9?
>>165490386Почему? Почему? Как?
У этой функции разве нет периода?Округли Х до ближайшего pinПосчитай 2 интеграла от 0 до pi и от 0 до Х-2pin
>>165490467НоупЗаборостроительная шарага имени Ленина города Усть-Перепиздюйска, второй курс
>>165490612Хех, тоже неплохо
>>165489990 (OP)Да, все программисты именно этим и занимаются.
Плюс стоит описать измерение времени. Что измеряется? Системное время, кол-во циклов*частоту? Большинство таких оценок - полное гавно, ибо планировщик успеет сто раз переключить твои задачи, и в эти измерения времени вкрадутся чужие расходы.В идеале мерять надо на выделенном ядре, где шедулер не ебет таски, kernel скомпилировать с NO_HZ_FULL и добавить на нужное ядро эту опцию + isolcpu. И запускать свой таск с SHED_FIFO и максимальной rt-шной привелегией.
>>165490540Нет у неё периода. Попроси гугл построить её график, увидишь.
>>165490661К сожалению там электронная система тестов по типу "чёрный ящик": просто кидаешь прогу, а оно тебе говорит, окей или нет.
>>165490516Почитай хоть пару строк про avx и simd вообще, дебил малолетний.В современных процах есть специальные регистры, длинной например 256 бит, куда помещается например 8 32-битных интов или 4 дабла и много других вариантов, вплоть до 32 байт. Для работы с этими регистрами есть специальный набор инструкций, современные называются AVX/AVX2/AVX-512 (это уже на совсем современных, где есть регистры на 512 бит). Эти инструкции позволяют производить одновременные операции над числами в векторном регистре за одну инструкцию.Для удобства для этих инструкций определены интринсики, в <immintrin.h>, можно писать внутри си/си++ программ.
>>165489990 (OP)Пиши сразу входные и выходные значения.
>>165490893Делил малолетний - это ты, а писать надо по обычному, а к этой хуйне сводить - уже задача компилятора.
>>165490895Вход: х не превышающий 1500Выход: значение интеграла, для х>1300 примерно 1.25278Ограничение по времени: 2,5 сек
>>165490954Если ты пишешь код не для rt-систем - то пожалуйста, вставляй флаги и жди, что компилятор что-то сделает за тебя.Но компилятор векторизует только довольно примитивные случаи, и зачастую делает это криво и неполноценно. Программист зачастую умней компилятора и способен написать крайне эффективный код на avx2, который компилятору не повторить из-за сложного алгоритма.
ОП, СУКА ЛЕНИВАЯhttps://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8B_%D0%A4%D1%80%D0%B5%D0%BD%D0%B5%D0%BB%D1%8F
>>1654911172.5 секунды - это дохуллион времени.
>>165491288Вот кстати страно что ОП про ряды не подумал, второй курс как-никак, математики видимо совсем не было.
>>165491288Не пизди. Я эту статью прочитал, принял к сведению, попробовал реализовать методом разложения в ряд, получилось ещё хуже. Иди на хуй. Оп.
>>165491395>>165491397
>>165491334Но и сделать нужно 200 млн итераций
>>165491397НЕ ПИЗДИ, НЕ МОГЛО ХУЖЕ ПОЛУЧИТЬСЯтам скорость сходимости слишком большая
>>165491397И сколько элементов ряда суммировал?
>>165491476Ну вот получилось.
>>165491397Что то мне подсказывает, что у тебя там пиздец ошибка накапливаться будет если в лоб.Впрочем, поздно ты тред создал, я уже спать укатился, так что подрочиться с этой херней власть могу только завтра (то есть уже сегодня) вечером
>>165489990 (OP)Пошли вы нахуй! Я уже брался помогать одному гондону говорил даже заплатить, а в итоге слился!
А, НЕТ. ТАМ ЖЕ ПРИ МАЛЫХ СТЕПЕНЯХ ДЛЯ Х=1000 ПИЗДА
А, НЕТ. ВСЕ ВЕРНО, ОП - ПИДОР.ДЛЯ ВСЕХ N>15 ЮЗАЙ АСИПТОТИКИДЛЯ ВСЕХ N МЕНЬШЕ РАЗЛОЖЕНИЕ В РЯД
>>165491775КОКОЙ ЖЕ Я ГЕНИЙ
>>165491288> и {\displaystyle C(x)} — нечётные функции {\displaystyle x}.Асимптотики интегралов Френеля при {\displaystyle x\to \infty } даются формуламиОно?
>>165491879ДА
>>165491288>%D0%98%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8B_%D0%A4%D1%80%D0%B5%D0%BD%D0%B5%D0%BB%D1%8F бляяяяяяяяяяяяяяяяяяяяяяяя ну ты и петух
>>165489990 (OP)А нахуй тебе прямоугольники даун? Юзай метод трапеций хотя бы.
>>165489990 (OP)Рунгекутой делай.
>>165491775Что тут такое N?мимо тупой
>>165492044ну Х, всм, а не N
>>165492001Даун, трапеции сводятся к тем же прямоугольникам
>>165492088Только точность побольше. А соответсвенно делить можно будет на меньшее количество отрезков.
>>165492088У рунге-куты или трапециями точность значительно выше, чем у прямоугольников при том же шаге. Там где прямоугольниками надо 200млн шагов, рунке-кута или трапеции за сотню тысяч или даже десятков сделают.
>>165489990 (OP)Кстати да, если у опа X окажется дохуя большим, то даже 20 млн прямоугольников ему не хватит.
Аноны, а вы можете дать оценку сложности алгоритмов с прямоугольниками, трапециями, параболами, рунгекуты, разложения в ряд и асимптоматики в зависимости от x и в зависимости от требуемой точности?
>>165492358Хуле тут давать. Линейная
>>165492358В смысле сложность? Долбишь по клавишам, хуяришь код.
>>165492400Бля, перефразирую вопрос . Относительную сложность. Т.е.насколько трапеции быстрее прямоугольников и так далее?
>>165492471О, пхпшники подъехали.
>>165492489Бамп вопросу
О, такой тред. Анон, научи меня оценивать погрешность плз
>>165490653Да, все. Кто не занимается обычные веб-макаки или ещё хуже, коме цэпэпэ нихуя не знают.
>>165489990 (OP)> за заданное время успеваю обработать только около 16 млн.Неси этот код. На все претензии отвечай, что у тебя всё работает просто они лохи и дураки пидары и гамасеки а ещё суки ебаные, на доисторическом дерьме запускают код.
>>165490893Ебаться-сраться! Так вот кто хуярит тормозной и засранный быдлокод!
>>165493688Анон, если ты шаришь, поясни за ту хуйню которую тот анон, на которого ты отвечаешь, несёт. Я нихуя не понял. Это торт или хуита? И почему? Только объяснение хорошо бы уровня для дебилов
>>165489990 (OP)Numerical recipes in C книжка. Там описаны методы поумнее
>>165493957Спасибо, анон. Огромное!
>>165494020Семестр по ней лабы делал, кека
>>165493806Тот ебалай предлагает тебе заебенить код с командами ассемблера. На первый взгляд это кажется круто, но явно не в твоём случае т.к. это будет охуительный костыль. Принесёшь ты этот код на другую машину и начнётся веселуха. Хуякс, а проц на целевой машине эти команды не поддерживает и вообще там стоит MIPS. Там один гражданин ответил уже, что всё это делается средствами компилятора.
>>165494178То есть компилятор сам за меня сделает подробную оптимизацию?
>>165494385Да. В ассемблер CISC-процессоров не стоит лезть ручками. В современных реалиях это не нужно.
Так, аноны. А почему вы уверены, что асимптотическая формула даст мне необходимую точность?
Параллелизовать ещё не советовали?
>>165496671Нет.