|
2 / 2 / 0
Регистрация: 14.02.2013
Сообщений: 145
|
|
Вычислить значение выражения25.09.2016, 15:42. Показов 3435. Ответов 16
Метки нет (Все метки)
0
|
|
| 25.09.2016, 15:42 | |
|
Ответы с готовыми решениями:
16
Вычислить значение выражения
|
|
Почетный модератор
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
|
|
| 25.09.2016, 16:14 | |
|
Почитайте в этой теме, вроде понятно написано, хоть и для С++.
Что означает взятое по модулю 10^9 + 7
1
|
|
|
2 / 2 / 0
Регистрация: 14.02.2013
Сообщений: 145
|
|
| 25.09.2016, 17:04 [ТС] | |
|
Я читал, там звучала фраза "каждую операцию делать по модулю", что есть операция в данном случае.
0
|
|
|
Почетный модератор
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
|
|
| 25.09.2016, 17:06 | |
|
1
|
|
|
2 / 2 / 0
Регистрация: 14.02.2013
Сообщений: 145
|
|
| 25.09.2016, 17:10 [ТС] | |
|
Давайте так, я пишу как я себе это представляю а вы говорите правильно это или нет.
0
|
|
|
Почетный модератор
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
|
||||||
| 25.09.2016, 17:12 | ||||||
|
Например по модулю 25.
Получили на какой-то итерации 51. Делаем 51 по модулю 25.
Тогда уж пишите полное и точное условие задачи.
1
|
||||||
|
2 / 2 / 0
Регистрация: 14.02.2013
Сообщений: 145
|
||||||
| 25.09.2016, 17:17 [ТС] | ||||||
https://psv4.vk.me/c810330/u14... vE_aU2z50g Добавлено через 12 секунд Вот задача. Добавлено через 1 минуту Чуть другая формула, но все же.
0
|
||||||
|
Почетный модератор
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
|
|
| 25.09.2016, 17:27 | |
|
Пишите условие в теме, все равно ссылка не рабочая, да и правилами это запрещено.
1
|
|
|
2 / 2 / 0
Регистрация: 14.02.2013
Сообщений: 145
|
|
| 25.09.2016, 17:54 [ТС] | |
|
А я понял, не стоит решать задачу по подсказке.
Добавлено через 2 минуты Условие: Дано N, найти 1^2+2^2+3^2+4^2+...+N^2. Добавлено через 1 минуту А снизу подсказка что это выражение равно n(n+1)(2n+1)/6 Добавлено через 17 секунд Вся жизнь обман... Добавлено через 10 минут Попробовал в цикле получается TL. Добавлено через 12 минут Начну с начала. Условие: Дано N, найти 1^2+2^2+3^2+4^2+...+N^2. Формат выходных данных: В выходной файл выведите одно число - ответ на задачу. Поскольку ответ может получится довольно большим, то выведите его по модулю 10^9+7.
0
|
|
|
2 / 2 / 0
Регистрация: 14.02.2013
Сообщений: 145
|
|
| 25.09.2016, 18:07 [ТС] | |
|
+есть подсказка такая формула:
0
|
|
|
Модератор
10451 / 5742 / 3409
Регистрация: 17.08.2012
Сообщений: 17,474
|
||||||
| 26.09.2016, 22:35 | ||||||
|
Договоримся использовать целые числа, а именно, типа longint. Слегка преобразуем выражение:
Теперь, если n чётное, будем использовать , а если нечётное, Это для того, чтобы остаться в целых числах, избавиться от деления в циклах и уменьшить количество итераций. Обзовём выражение под первым квадратом n, под вторым - n1, какие бы они там не получились в зависимости от приведённых выше формул. И избавимся от операции возведения в степень. С умножением по модулю всё очень плохо, при всех ухищрениях n никак не сможет быть более 308 (навскидку для longint). Поэтому умножение по модулю будем делать с помощью сложения по модулю (столбиком, как в школе учили). Тогда n вполне может быть не более 231-2=2147483646 (для типа longint). Вместо n будем использовать |n|, чтобы цикл для всех умножений был однотипным, всё равно имеет место возведение в квадрат. В результате вытанцовывается вот такая программа:
2
|
||||||
| 27.09.2016, 20:07 [ТС] | |
|
Не по теме: Тавтология получается и в конце и.
0
|
|
| 29.09.2016, 23:06 | |
|
Не по теме: TermenatorX, да бог с нею, тавтологией, зато в рифму... Да и какой с меня спрос - я же французский язык цурюк ферштеен совершенно...
0
|
|
|
2 / 2 / 0
Регистрация: 14.02.2013
Сообщений: 145
|
|||||||||||
| 30.09.2016, 22:24 [ТС] | |||||||||||
|
Можно вопрос как работает это умножение:
Cyborg Drone, Прошлая программа прошла тесты, для второй программы формула такая Я переписал, но программа проходит не все тесты,подскажите что не учел.
0
|
|||||||||||
|
Модератор
10451 / 5742 / 3409
Регистрация: 17.08.2012
Сообщений: 17,474
|
||||||||||||
| 01.10.2016, 02:50 | ||||||||||||
Сообщение было отмечено TermenatorX как решение
Решение
Обычное умножение в столбик, но по модулю. Обычное умножение в двоичной форме (пример):
∙∙∙∙∙∙∙1011000 ∙∙∙∙∙∙*1100111 -------------- ∙∙∙∙∙∙∙1011000 ∙∙∙∙∙+10110000 ∙∙∙∙+101100000 ∙∙∙+0000000000 ∙∙+00000000000 ∙+101100000000 +1011000000000 -------------- 10001101101000 Серым цветом изображены нули, которые мы в школе не писали, но которые, тем не менее, имеют место быть. Нетрудно заметить, что: Если соответствующий разряд второго сомножителя равен единице, очередное слагаемое равно первому сомножителю, сдвинутому влево на количество позиций, соответствующее номеру (к примеру, k) разряда второго сомножителя, на который в данный момент умножается первый сомножитель, если считать, что младший разряд имеет номер 0. Ну, или, что то же самое, равно первому сомножителю, умноженному на 2k. Если соответствующий разряд второго сомножителя равен нулю, очередное слагаемое равно нулю (точнее, нулю, сдвинутому на k разрядов). Пока что всё как в школе, но в двоичной форме. Умножение в двоичной форме по модулю (для простоты рассуждений пусть будет m = 100000002, в этом случае деление можно заменить "обрезкой" числа до 7 разрядов): ∙∙∙∙∙∙∙1011000 ∙∙∙∙∙∙*1100111 -------------- ∙∙∙∙∙∙∙1011000 ∙∙∙∙∙+10110000 ∙∙∙∙+101100000 ∙∙∙+0000000000 ∙∙+00000000000 ∙+101100000000 +1011000000000 -------------- 10001101101000 Красным цветом изображены разряды, которые при операции деления по модулю просто-напросто пропадают. Хорошо видно, что на любом этапе вычислений любое число обязательно меньше, чем m. И вот что интересно: можно всё перемножить, "как обычно", а затем результат разделить по модулю на m, а можно и все сомножители, промежуточные слагаемые и результат делить по модулю на m в процессе вычислений, результат от этого не изменится. Зато не будет переполнения в процессе вычислений. С теорией вроде всё, что неясно, пишите. Комментарии к коду функции:
Добавлено через 4 часа 24 минуты Сначала докажем, что n(n+1)(2n+1) всегда делится на шесть. Для этого умножим числитель и знаменатель на 4. Рассмотрим последнее частное. В числителе получилось три подряд идущих натуральных числа, следовательно, одно из них обязательно имеет делитель три. 2n и 2n+2 - два соседних чётных числа, следовательно, одно из них имеет делитель 4, а другое имеет делитель 2. Но исходное частное есть ни что иное, как сокращённое на 4 последнее частное. Следовательно, одно из трёх чисел делится на 3, а одно из двух первых чисел, поскольку 2n+1 обязательно нечётное, делится на 2. И это не обязательно разные числа, например, при n=5 делится на 3 и на 2 одно и то же число: n+1. Теперь насчёт 2n+1. Не следует умножать n на 2 с помощью функции, затем складывать с 1 и делить на 3, если вдруг такое надо будет сделать. Если n>500000003, то один (старший) двоичный разряд будет утерян, и результат деления будет неверным. Так что 2n+1 придётся вычислять непосредственно. Но как это сделать, чтобы не возникло переполнения? Небольшие преобразования: 2n+1=n+n+1=(n-1)+(n-1)+3 Последнее число, то есть, 3, явно делится на 3. Так как всё число 2n+1 делится на 3, то и 2n+1-3=2n-2 делится на 3, но 2n-2 чётное, значит, и (2n-2)/2=n-1 делится на 3. Получается, что (2n+1) div 3=((n-1) div 3)*2+1. Если 2n+1 не делится на 3, то тогда его можно будет вычислить с помощью функции mmm, потеря старших разрядов будет связана только с mod m, то есть, соответствующая заданию. Пусть n=n, n1=n+1, n2=2n+1 Теперь соединяем это всё воедино и пишем вызывающую программу:
1
|
||||||||||||
|
2 / 2 / 0
Регистрация: 14.02.2013
Сообщений: 145
|
||||||
| 01.10.2016, 17:05 [ТС] | ||||||
|
Не по теме: Можно вопрос вам самому интересно задачи решать или у вас иная высшая цель? Добавлено через 15 минут У меня вопрос: как вы перешли от двоичного представления к десятеричному? Ураааа, я решил. Такие как вы делают мир лучше. then n2 := ((n - 1) div 3) * 2 + 1 n2 := mmm(n, 2) + 1; Вот здесь нужно начальное значение N. Добавлено через 1 минуту Программа выглядит так:
0
|
||||||
|
Модератор
10451 / 5742 / 3409
Регистрация: 17.08.2012
Сообщений: 17,474
|
|||
| 03.10.2016, 22:24 | |||
|
Не по теме: Я не знаю. Интересные задачи мне решать интересно. Тому, кто стремится что-то сделать, не грех и помочь.
0
|
|||
| 03.10.2016, 22:24 | |
|
Помогаю со студенческими работами здесь
17
Вычислить значение выражения
Вычислить значение выражения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|