Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2016, 11:08   #1
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию Можно ли упростить формулу?

Здравствуйте!
Что-то мне кажется, что как-то всё-таки можно упростить формулу без разбивки на части, но не пойму как. Или таки нельзя?
Наверное, общие скобки после второго div можно убрать, но их я оставил для смысловой группировки.
Код:
mn:=(X-L - (X-L) div ((MX+4)*7)*12) div ((MX+4)*7)
Ship_1 вне форума Ответить с цитированием
Старый 30.11.2016, 16:08   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,551
По умолчанию

Не знаю, может ли это считаться упрощением, но избегаем повторного вычисления одного и того же - таки да .
Код:
  tmp1 :=  X-L ; tmp2 := (MX+4)*7 ;
 
 mn:=tmp1 - tmp1 div (tmp2*12) div tmp2
digitalis вне форума Ответить с цитированием
Старый 30.11.2016, 16:33   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

тогда уж так, если ТС правильно скобки расставил
Код:
mn:=(tmp1 - tmp1 div tmp2*12) div tmp2;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 30.11.2016, 16:41   #4
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,551
По умолчанию

Да, конечно.
Эти учебные задачи придумывают без смысла, а чтоб от скобок голова закружилась Говорят, американам ракету даже взорвать пришлось, бо программер то ли скобку, то ли дефис не туды впиндюрил.
digitalis вне форума Ответить с цитированием
Старый 30.11.2016, 16:52   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

to Aватар
TC расставил скобки так
Код:
mn:= tmp1 - ( tmp1 div (tmp2*12) div tmp2 );
вот только TC не хочет вводить доп. переменные для промежуточных вычислений
Цитата:
как-то всё-таки можно упростить формулу без разбивки на части,
Цитата:
Наверное, общие скобки после второго div можно убрать,
не думаю сравните k/(m*t) и (k/m)*t (div это же почти что / )
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 30.11.2016 в 16:54.
evg_m вне форума Ответить с цитированием
Старый 30.11.2016, 17:14   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

to evg_m

mn:=(X-L - (X-L) div ((MX+4)*7)*12) div ((MX+4)*7) ->

mn:=(tmp1 - tmp1 div tmp2*12) div tmp2

откуда

mn:= tmp1 - ( tmp1 div (tmp2*12) div tmp2 );
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 30.11.2016, 18:11   #7
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию

evg_m прав про доп. переменные.
Аватар, здорово, но что-то не выглядит проще
Спасибо откликнувшимся!
Ship_1 вне форума Ответить с цитированием
Старый 30.11.2016, 19:56   #8
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

mn:=(X-L - (X-L) div ((MX+4)*7)*12) div ((MX+4)*7) ;
mn:=(X-L)*(1 - 1 div ((MX+4)*7)*12) div ((MX+4)*7) ;
1 div ((MX+4)*7)*12 == 0
mn:=(X-L) div ((MX+4)*7) ;
Но так думаю проще.


Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 30.11.2016, 20:04   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Как-то так
10 - 10 div 2 = 5 <> 10 * (1 - 1 div 2) = 10
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 30.11.2016, 21:02   #10
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Да. Согласен.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
можно ли заменить данную формулу на другую, или упростить? АННА-ЕАО Microsoft Office Excel 8 24.11.2011 10:59
Упростить формулу? Ok-Alex Microsoft Office Excel 11 03.11.2011 19:20
Упростить формулу staniiislav Microsoft Office Excel 13 24.01.2011 13:37
Можно ли упростить формулу выбора наибольшего диапазона? O_H Microsoft Office Excel 23 19.08.2010 12:57
Можно ли упростить формулу? O_H Microsoft Office Excel 8 14.07.2010 13:42