0 / 0 / 0
Регистрация: 30.05.2023
Сообщений: 4

Найти количество решений неравенства в целых неотрицательных числах

30.05.2023, 21:58. Показов 3139. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уже несколько часов не могу сократить данный код к задаче, не укладываюсь в заданное ограничение по времени 2 секунды. Дано натуральное число N. Требуется найти количество решений неравенства в целых неотрицательных числах: x^+y^2 < N (пары, отличающиеся перестановкой чисел считаются разными решениями, т.е., например, (x=2, y=1) и (x=1, y=2) – это два разных
Python
1
2
3
4
5
6
7
8
9
N = int(input())
count = 0
x = 0
while x**2 < N:
    y = 0
    while x**2 + y**2 < N:
        count += 1
        y += 1
    x += 1
print(count) решения). В выходной файл требуется вывести единственное целое число − ответ в задаче.

Нашла разные решения, но не везде совпадает результат. Прикрепляю примеры.
Code
1
2
3
4
Ввод       Вывод
2              3
5              6
6              8
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.05.2023, 21:58
Ответы с готовыми решениями:

Подсчитать количество решений неравенства в натуральных (неотрицательных целых) числах
Дано натуральное n. Подсчитать количество решений неравенства x*x + y*y &lt; n в натуральных (неотрицательных целых) числах, не используя...

Сколько решений в целых неотрицательных числах имеет уравнение
Сколько решений в целых неотрицательных числах имеет уравнение х1+х2+х3+х4+х5+12?

Составить блок-схему алгоритма подсчета количества решений данного неравенства в натуральных целых числах
Составить блок-схему алгоритма следующей задачи: Дано натуральное n. Подсчитать количество решений неравенства x2 + y2 &lt; n в...

14
 Аватар для s_t_r_a_j
526 / 179 / 58
Регистрация: 12.02.2023
Сообщений: 641
30.05.2023, 22:35
Python
1
2
3
4
5
6
7
8
9
n = int (input())
x = y = count = 0
while x**2 + y**2 < n:
    while x**2 + y**2 < n:
        y += 1
        count += 1
    x += 1
    y = 0
print(count)
1
0 / 0 / 0
Регистрация: 30.05.2023
Сообщений: 4
30.05.2023, 23:23  [ТС]
Спасибо за ответ! Проблема в том что счетчик времени мне показывает на все варианты кода 2. 08 секунд и не засчитывает. Возможно ли как-то еще упростить код?
0
 Аватар для s_t_r_a_j
526 / 179 / 58
Регистрация: 12.02.2023
Сообщений: 641
30.05.2023, 23:27
странно, у меня даже при условии
Python
1
n = 100000 #int (input())
время
[Finished in 219ms]
0
0 / 0 / 0
Регистрация: 30.05.2023
Сообщений: 4
30.05.2023, 23:32  [ТС]
Не знаю в чем беда...Задание загружаю на Яндекс Контест, но перепробовав уже более 5 вариантов решения этой задачи я все равно сталкиваюсь с ошибкой лимита времени. То 2.08s, то 2.084s
0
 Аватар для s_t_r_a_j
526 / 179 / 58
Регистрация: 12.02.2023
Сообщений: 641
30.05.2023, 23:38
Nfgdtre, я сам не так давно программирую, думаю более квалифицированные коллеги ответят вам и предложат необходимые решения
1
0 / 0 / 0
Регистрация: 30.05.2023
Сообщений: 4
30.05.2023, 23:41  [ТС]
Спасибо за предложенный вариант решения, удачного обучения)
Буду ждать решения этой ситуации, может преподавателю завтра напишу...
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
31.05.2023, 00:47
s_t_r_a_j, а причем тут программирование? Тут для решения нужно математику знать класс за 7-8.
0
 Аватар для s_t_r_a_j
526 / 179 / 58
Регистрация: 12.02.2023
Сообщений: 641
31.05.2023, 08:31
Цитата Сообщение от eaa Посмотреть сообщение
нужно математику знать класс за 7-8
eaa, решил то я уравнение правильно, но у ТС собственно вопрос про лимит превышения времени при прогоне кода, так что тут 8 класс математики думаю вряд ли поможет
0
Модератор
Эксперт С++
 Аватар для zss
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
31.05.2023, 09:22
Лучший ответ Сообщение было отмечено Nfgdtre как решение

Решение

Второй цикл можно выбросить,
получить целое число y ближайшее к sqrt(n-x*x)
и сразу прибавить его к count, т.к. все числа от 0 до y подходят.
Python
1
2
3
4
5
6
7
8
import math
n = int (input(":"))
x = count = 0
while x**2 < n:
    y =math.ceil(math.sqrt(n-x**2))
    count += y
    x += 1
print(count)
2
 Аватар для s_t_r_a_j
526 / 179 / 58
Регистрация: 12.02.2023
Сообщений: 641
31.05.2023, 09:31
Цитата Сообщение от Nfgdtre Посмотреть сообщение
сталкиваюсь с ошибкой лимита времени. То 2.08s, то 2.084s
измерил время выполнения кода через timeit, получается при n = 8000, время выполнения максимально 1.92
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
31.05.2023, 13:03
zss, в модуле math теперь есть isqrt.
0
Любознательный
 Аватар для YuS_2
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,213
31.05.2023, 14:04
ну и ещё вариант, через дискриминант:
Python
1
2
3
4
5
6
7
8
from math import ceil,sqrt
n = 8000000
res = 0
for y in range(ceil(sqrt(n))):
    d = 4 * n - 4 * y ** 2
    res += ceil(sqrt(d)/2)
 
print(res)
1
Модератор
Эксперт С++
 Аватар для zss
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
31.05.2023, 15:45
Цитата Сообщение от YuS_2 Посмотреть сообщение
d = 4 * n - 4 * y ** 2
d=4(n-y2)
sqrt(d)/2=sqrt(4)*sqrt(n-y2)/2=sqrt(n-y2)
Так что, это одно и то же.
0
Любознательный
 Аватар для YuS_2
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,213
31.05.2023, 16:56
Цитата Сообщение от zss Посмотреть сообщение
Так что, это одно и то же.
да, конечно... иначе бы и решение было бы другим... просто я решал через дискриминант, Вы попроще, но суть решения и не может быть другой...
Python
1
2
3
4
5
a*x^2 + b*x + (y^2 - n) < 0
a = 1, b = 0, c = y^2 - n
d = b^2 - 4*a*c
d = 4 * n - 4 * y ** 2
x1, x2 = (d**.5)/2, (-d**.5)/2
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.05.2023, 16:56
Помогаю со студенческими работами здесь

Дано натуральное число. Определить количество решений неравенства x^2+y^2<n в натуральных числах
РЕБЯТА НУ ВЫРУЧИТЕ!!!!!! Дано натуральное число n определить количество решений неравенства x^2+y^2&lt;n в натуральных числах program...

Количество целых неотрицательных решений
{x}_{1}+{x}_{2}+{x}_{3}+{x}_{4}=n где0\leq {x}_{1}\leq 3 Найти производящую функции в которой коэффициент при x^n описывает кол-во...

Найти количество решений уравнения x1+x2+x3=12 при положительных целых числах при ограничениях x1>=1, x2>=2, x3>=3
Найти количество решений уравнения x1+x2+x3=12 при положительных целых числах при ограничениях x1&gt;=1, x2&gt;=2, x3&gt;=3, желательно...

Сколько решений у неравенства x^2+y^2<n в натуральных числах?
Дано натуральное число. Подсчитать количество решений неравенства x^2+y^2&lt;n в натуральных числах. Я не прошу кода, хоть ето было бы...

Найти число целых решений неравенства
30. Найти число целых решений неравенства \frac{\log_{1\frac{1}{3}} (2x-7) + \frac{1}{\log_{x-3}3}}{\sqrt{9-x}}\leq 0


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru