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

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

17.07.2021, 21:28. Показов 2064. Ответов 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru