Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 30.05.2023
Сообщений: 4

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

30.05.2023, 21:58. Показов 3116. Ответов 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
13769 / 10962 / 6491
Регистрация: 18.12.2011
Сообщений: 29,236
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
7401 / 2247 / 359
Регистрация: 10.03.2016
Сообщений: 5,187
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
13769 / 10962 / 6491
Регистрация: 18.12.2011
Сообщений: 29,236
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
7401 / 2247 / 359
Регистрация: 10.03.2016
Сообщений: 5,187
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
Ответ Создать тему
Новые блоги и статьи
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