IPB

Здравствуйте, гость ( Вход | Регистрация )

> Как разложить число на составляющие по заданному уравнению?, S=x*(y*(4+z1)+4+z2)+z3
&y JOKER
сообщение 15.9.2009, 11:33
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 2
Регистрация: 15.9.2009
Город: Chelyabinsk city
Учебное заведение: слава Богу, уже закончил ;)
Вы: другое



Здравствуйте!
Я не студент и не математик,и даже не программер,а просто интересующийся различными сферами деятельности.
Возникла необходимость написать софтинку, которая бы раскладывала число на составляющие по заданному уравнению:

дано число S, которое может принмать значения от 8 до 234881024
S=x*(y*(4+z1)+4+z2)+z3 , где
x может принимать значение от 1 до 255
y - от 1 до 65535
z1,z2,z3 - от нуля, до 20
Имея на входе значение S необходимо вычислить: x,y,z1,z2,z3
Хотя-бы одно из множеств решений.

Вариант перебора отпадает - это некрасиво как-то и неинтересно. (IMG:style_emoticons/default/smile.gif)
Была мысль начать с того, на какие числа вообще делится S, но это опять-же только перебором.
Поэтому у меня вопрос к профессионалам, возможно-ли это решить красиво и каким образом? (IMG:style_emoticons/default/smile.gif)
Спасибо!

p.s. прошу прощения если не в тот топик, просто я не знаю что такое дифуры и относится-ли к ним моя задача.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
&y JOKER
сообщение 25.9.2009, 6:49
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 2
Регистрация: 15.9.2009
Город: Chelyabinsk city
Учебное заведение: слава Богу, уже закончил ;)
Вы: другое



Цитата
Дифуры не знаете, а вот дифференциальные уравнения "сократили" правильно.

ну это вот единственнное, чему меня научили в ВУЗе. (IMG:style_emoticons/default/smile.gif)

формула претерпела некоторые изменения, но суть осталась та-же:
S=(x*((y*(4+z1))+5+z2))+1+z3
в общем, алгоритм получился примерно следующий:
1. находим x перебором от 1 до 255 и z3 от 0 до 10 проверяем делится-ли (S-1-z3) на x без остатка и находится-ли частное n в пределе 65535. Таким образом нашли x, z3 и частное n.
2. получается: S=(x*n)+1+z3. Далее работаем с n.
перебором z1 и z2 от 0 до 10 проверяем целочисленное деление выражения: y=n-5-z2/(4+z1)

И вроде-бы все работает замечательно, но только в пределах до значаения S=9387296. Далее, диапазон "поправочного" коэфф. z3 приходится увеличивать, что собссно не есть гуд. (IMG:style_emoticons/default/sad.gif)
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме


Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 25.5.2025, 12:43

Книжки в помощь: "Сборник заданий по высшей математике" Кузнецов Л.А., "Сборник заданий по высшей математике" Чудесенко В.Ф., "Индивидуальные задания по высшей математике" Рябушко А.П., и другие.




Зеркало сайта Решебник.Ру - reshebnik.org.ru