Доброго времени суток. Помогите пожалуйста.

Дана машина, которая имеет два входа – a (первый операнд) и b (второй операнд), b≠0. Машина выполняет только одну функцию – f(a,b) = 1 – a/b. Запрограммировать на такой машине вычисление:

• a + b,

• a – b,

• ab,

• a/b.

Для начала у меня получилось: f(b,b)=0;

f(f(b,b),a)=f(0,a)=1;

f(b,1)=1-b;

f(a,1)=1-a;

f(1-b,1-a)=(b-a)/(1-a);

Ну вообщем я много еще чего с чем наугад потыкал. Нужного не получается. Как такое решать вообще? Гугл помалкивает...

Спасибо за ответы.

задан 3 Янв '14 5:04

10|600 символов нужно символов осталось
0

Вы пошли по совершенно правильному пути -- надо просто дальше расширять список возможных операций. Я не буду для каждого случая выписывать формулы, потому что они будут всё время увеличиваться в размере по принципу "в доме, который построил Джек" (с), а буду строить новые операции из уже имеющихся. Прежде всего, 1 построена, функция $%x\mapsto1-x$% тоже. Поэтому формула $%1-f(a,b)$% даёт частное $%a/b$% при $%b\ne0$%. Подставляя $%a=1$%, имеем функцию $%1/b$% как частный случай. Тогда для произведения имеем $%ab=a/(1/b)$% при $%b\ne0$%, а умножать на $%0$% мы и так умеем, так как функция 0 построена.

Теперь можно получить разность, умножая $%f(b,a)=1-b/a$% на $%a$%. Это даёт $%a-b$% для всех $%a\ne0$%. Отдельно построим $%0-b=-b$%, например, как $%(1-b)-1$%. Вычитать из ненулевого числа мы умеем, а при $%b=1$% требуется отдельно построить число $%-1$%. Сделаем это так: возьмём какое-нибудь $%b\ne0$%, для которого $%-b$% мы находить уже умеем, и рассмотрим $%f(-b,b)=1-(-b)/b=2$%. Тогда $%-1$% получается через $%1-2$%.

Теперь сумму $%a+b$% можно получить как $%a-(-b)$% для $%a\ne0$%, а при $%a=0$% она равна $%b$%, то есть числу, которым мы уже располагаем. Фактически, можно всё это запрограммировать как серию процедур с наличием проверок на равенство нулю.

ссылка

отвечен 3 Янв '14 9:41

Спасибо большое! Все понял.

(3 Янв '14 10:24) Kluqwee
10|600 символов нужно символов осталось
Ваш ответ

Если вы не нашли ответ, задайте вопрос.

Здравствуйте

Математика - это совместно редактируемый форум вопросов и ответов для начинающих и опытных математиков, с особенным акцентом на компьютерные науки.

Присоединяйтесь!

отмечен:

×3,709

задан
3 Янв '14 5:04

показан
440 раз

обновлен
3 Янв '14 10:24

Отслеживать вопрос

по почте:

Зарегистрировавшись, вы сможете подписаться на любые обновления

по RSS:

Ответы

Ответы и Комментарии

Дизайн сайта/логотип © «Сеть Знаний». Контент распространяется под лицензией cc by-sa 3.0 с обязательным указанием авторства.
Рейтинг@Mail.ru