Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 17.07.2021
Сообщений: 2

Количество решений уравнения x^2 = 0 (mod n)

17.07.2021, 21:28. Показов 2090. Ответов 11

Студворк — интернет-сервис помощи студентам
Необходимо составить программу на c++ которая находит кол-во решений уравнения x^2 = 0 (mod n)
Примеры:
Входные данные: 4
Результат: 2

Входные данные: 64
Результат: 8
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.07.2021, 21:28
Ответы с готовыми решениями:

Найти количество решений уравнения x + 2y +2z = n
Здравствуйте! И снова несложная задача, но лимит времени исчерпан. Я решаю за O(N^3) и как всегда в лоб. Как можно ускорить данный код (см....

Найти количество решений уравнения
Дано уравнение X1 + 2*X2 + 3*X3 + 4*X4 = N; Пользователь вводит число N (N<2000) с клавиатуры, а программа должна выдать количество...

количество решений уравнения
Найдите количество решений уравнения x1+x2+x3+x4+x5=25 в натуральных числах. x_k>=1.

11
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
17.07.2021, 22:19
Грубым перебором
C++
1
2
3
4
int count = 0;
for(int i=0; i<n; i++)
  if (i*i%n == 0)
     count++;
Псевдокод
1
0 / 0 / 0
Регистрация: 17.07.2021
Сообщений: 2
17.07.2021, 22:25  [ТС]
Байт, спасибо, однако хотелось бы найти более оптимизированный вариант
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
17.07.2021, 22:38
Цитата Сообщение от 3ndif Посмотреть сообщение
хотелось бы найти более оптимизированный вариан
Он, конечно , должен быть. Собака зарыта в разложении числа n на простые множетили. Но в эту жару голова совсем не работает....
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
18.07.2021, 09:52
Лучший ответ Сообщение было отмечено 3ndif как решение

Решение

3ndif, Вот по утренней прохладце....
Одно решение всегда есть. Тривиальное a = 0
Теперь разложим n на простые множители
n = p1r1*....* pkrk
Каждый квадрат в этом разложении удваивает количество решений, 4-я степень учетверяет, 6-я увосьмеряет и так далее
При этом нас совсем не итнересуюс сами множители, а только их степени
И получается такой простенький код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int count = 1;
for (i=2; i*i <=n; i++) {
  int kv = 1;
  while(n%i==0) {
    kv++;
    if (kv==2) {
      count *=2;
      kv = 1;
    }
    n /= i;
  }
}
cout << count;
Проверяйте!
3
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
18.07.2021, 14:14
Цитата Сообщение от 3ndif Посмотреть сообщение
Необходимо составить программу на c++ которая находит кол-во решений уравнения x^2 = 0 (mod n)
Ну не совсем понимаю этот вопрос: я скажу, что количество решений уравнения x^2 = 0 (mod n) будет безлимитно !

Почему
Цитата Сообщение от 3ndif Посмотреть сообщение
Входные данные: 4
Результат: 2
Входные данные: 64
Результат: 8
????

Я ошибся ? Подскажите, пожалуйста, как нужно понять проблему. Спасибо.
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
18.07.2021, 14:40
Цитата Сообщение от Volga_ Посмотреть сообщение
????
Все, кто делится на 8
0, 8, 16, 24, 32, 40, 48, 56 - 8 штук.
Цитата Сообщение от Volga_ Посмотреть сообщение
будет безлимитно
По-русски - бесконечно
Рассматриваются элементы кольца Zn, а это кольцо конечно.
Иными словами, a и a +n - рассматриваются как один элемент
Речь идет о смежных классах по модулю n
Можно сформулировать и так - Сколько таких a в интервале [0, n) что a2=0 (mod n)
Если еще не все понятно - спрашивай!

Добавлено через 2 минуты
ЗЫ. Слово limit по-русски переводится и как граница, и как предел (в математическом смысле)

Добавлено через 9 минут
Volga_, посмотри код в посте 2. Он грубый, не эффективный (брут-форс называется), но совершенно корректный.
1
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
18.07.2021, 14:58
Цитата Сообщение от Байт Посмотреть сообщение
По-русски - бесконечно
Цитата Сообщение от Байт Посмотреть сообщение
Слово limit по-русски переводится и как граница, и как предел (в математическом смысле)
Спасибо тебе огромное Байт. Оно будет использовать корректно у меня в следующий раз. Очень полезно для меня.

Цитата Сообщение от Байт Посмотреть сообщение
Все, кто делится на 8
0, 8, 16, 24, 32, 40, 48, 56 - 8 штук.
Почему решение не: 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, .... ???? и бесконечно. Я не вижу условие x<n в оригинале задачи !!!!
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
18.07.2021, 16:14
Цитата Сообщение от Volga_ Посмотреть сообщение
Я не вижу условие x<n в оригинале задачи !!!!
Да, его там нет. Но все, кто в курсе, прекрасно понимают, что речь идет о кольце вычетов по модулю n. Иначе задача и впрямь не имеет смысла.
Когда стоит такой значок (mod n), то имеется в виду, что a и a+n - это одно и тоже.
Так 2 = 5 (mod 3) = -1 = 11 = 1001
Есть такая штука "модульная арифметика" В некоторых школах ее проходят, в некоторых нет. Вещь это очень несложная
Но если ты учишься на математика, она должны быть тебе известна...
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
18.07.2021, 16:25
Байт, спасибо. Полезные информации для меня.
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
19.07.2021, 09:17
Volga_, я думаю, ты уже все понял, но вот такая добавочка на всякий случай. Ты пишешь
Цитата Сообщение от Volga_ Посмотреть сообщение
Почему решение не: 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, .... ????
Потому что 64 и 0 - один и тот же элемент, как и 72 - 8, 80 - 16
Теория групп проходили? Фактор-группы? Это все очень похоже...
1
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
19.07.2021, 10:23
Цитата Сообщение от Байт Посмотреть сообщение
Теория групп проходили? Фактор-группы? Это все очень похоже...
Да Байт, я учил много математику и знал их. Я только уже не понял ситуацию задачи, но сейчас все ясно, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.07.2021, 10:23
Помогаю со студенческими работами здесь

Количество целочисленных решений уравнения
Методом включений-исключений {x}_{1}+{x}_{2}+{x}_{3}+{x}_{4}=34 3 \leq {x}_{1}\leq 14 2 \leq {x}_{2}\leq 14 1 \leq {x}_{3}\leq 13 ...

Найти количество решений уравнения
Доброго времени суток! Такая задача: есть уравнение x1+x2+x3+x4+x5=20, где каждый х &gt;= 0. В каждом решении все х упорядочиваем по...

Количество целочисленных решений уравнения
Здравствуйте, помогите, пожалуйста, найти кол-во целочисленных решений уравнения x^2+6xy+5y^2=100^50

Найдите количество решений уравнения
Найдите количество решений уравнения x1+x2+x3+x4+x5=35 в целых неотрицательных числах, если известно, что x1 &lt;= 11

Определить количество решений уравнения
Определить количество решений уравнения x1+x2+x3+x4=17 в неотрицательных целых числах


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru