|
282 / 80 / 7
Регистрация: 19.04.2011
Сообщений: 223
|
||||||
Уравнение с тремя переменными С++07.10.2011, 21:54. Показов 4311. Ответов 10
Метки нет (Все метки)
Уважаемые форумчане, помогите решить задачу на С++.
Задано уравнение третьей степени 11*x*x*x-13*y*y*y+17*z*z*z-4503=0 Определить, имеет ли оно решение в целых числах. Если имеет, то сколько их и чему они равны. кроме того обязательным условием является использование в коде подпрограммы. Сам я написал вот такой "сложный" код с двумя вложенными циклами без всяких подпрограмм, в результате чего получил шесть решений уравнения в диапазоне от -1000 до 1000 для каждой переменной, при этом моя машина искала корни минут 8-10.
0
|
||||||
| 07.10.2011, 21:54 | |
|
Ответы с готовыми решениями:
10
Вычислить значение выражения с тремя переменными Неверные расчеты калькулятора с тремя переменными
|
|
Хочу в Исландию
1041 / 840 / 119
Регистрация: 10.11.2010
Сообщений: 1,630
|
||||||
| 07.10.2011, 22:17 | ||||||
|
У меня работала < 25 секунд.
0
|
||||||
|
222 / 135 / 19
Регистрация: 06.11.2010
Сообщений: 234
|
||||||
| 07.10.2011, 23:58 | ||||||
|
У вас будет переполнение при х = 1000.
Вот накидал более быстрое решение перебором. Только с округлением нужно быть осторожным.
1
|
||||||
|
Хочу в Исландию
1041 / 840 / 119
Регистрация: 10.11.2010
Сообщений: 1,630
|
||||||
| 08.10.2011, 00:28 | ||||||
|
На 64 бита пора переходить!
![]() Тогда вот так:
0
|
||||||
|
282 / 80 / 7
Регистрация: 19.04.2011
Сообщений: 223
|
|
| 10.10.2011, 11:33 [ТС] | |
|
x1Mike7x, запускаю ваш код. Ваш алгоритм находит только два решения в диапазоне от -1000 до 1000, хотя там находится шесть решений. Всяко пытался экспериментировать с округлением, но безрезультатно. Подскажите пожалуйста кто-нибудь в чем дело.
0
|
|
|
222 / 135 / 19
Регистрация: 06.11.2010
Сообщений: 234
|
|||||||||||
| 10.10.2011, 12:32 | |||||||||||
|
Garred, у Вас лишние результаты выводит из-за переполнения.
Проверьте каждый из результатов вручную на калькуляторе - увидите, что подходят только 2 из них. Или, например, вот вывод для вашего кода (с небольшим дополнением) :
0
|
|||||||||||
|
282 / 80 / 7
Регистрация: 19.04.2011
Сообщений: 223
|
|
| 10.10.2011, 15:44 [ТС] | |
|
x1Mike7x, благодарю Вас за помощь, но у меня еще два вопроса.
![]() 1) Объясните, в чем заключается это "переполнение" и как оно повлияло на решение. 2) Если Вам не трудно, вычислите "сложность" своего алгоритма.
0
|
|
|
222 / 135 / 19
Регистрация: 06.11.2010
Сообщений: 234
|
|
| 10.10.2011, 20:58 | |
|
Garred
1) На счёт переполнения. Целое знаковое число представляется 32 битами - 1 старший бит отвечает за знак, 31 младший бит отвечают за само число. У нас есть число 2147483647 - оно представлено в двоичном представлении как 01111111111111111111111111111111. Когда мы хотим прибавить к этому числу еще одну единицу, двоичное представление числа стает следующим: 10000000000000000000000000000000, что соответствует числу -2147483648. Вот пример кода на это: http://codepad.org/p11uComp Если же мы говорим за беззнаковое целое, то при максимальном его значении ( 32 единицы в двоичном представлении ) при прибавлении еще 1 единицы число станет просто равно 0. 2) Сложность O( N^2 ) Мы имеем всего 2 цикла для X и Y, а число Z вычисляется на основе этих X и Y. Добавлено через 1 час 11 минут + к 1ому "как оно повлияло на решение?": число 11*х*х*х и аналогичные для y-z, дадут число, больше за вот это максимальное 2147483647 и, как следствие, число 11*x*x*x-13*y*y*y+17*z*z*z-4503 будет состоять из "не совсем" правильных слагаемых.
2
|
|
|
282 / 80 / 7
Регистрация: 19.04.2011
Сообщений: 223
|
|
| 10.10.2011, 21:07 [ТС] | |
|
x1Mike7x
Спасибо, я разобрался в ваших ответах. А можно ли каким-то образом ускорить Ваш алгоритм?
0
|
|
|
222 / 135 / 19
Регистрация: 06.11.2010
Сообщений: 234
|
||||||
| 10.10.2011, 21:52 | ||||||
|
Можно, но это будет очень незначительно.
Например, мы можем вызывать функцию check_Z() только для целых Z^3, потому что если Z^3 будет с дробью, то и корень 3 степени тоже будет с дробью, что нам не подходит. Для этого исправим функцию поиска решения на:
1
|
||||||
| 10.10.2011, 22:12 | |
|
Не по теме: погорячился, в задании многочлен от нескольких переменных
0
|
|
| 10.10.2011, 22:12 | |
|
Помогаю со студенческими работами здесь
11
Пузырьковая сортировка с тремя переменными Найти коэффициенты полинома с тремя переменными Точки экстремума в функции с тремя переменными Как построить график описываемый тремя переменными Минимизация функции с тремя переменными без ограничений Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|