Вход | Регистрация


Информационные технологии :: Математика и алгоритмы

Странный способ возведения в степень.

Странный способ возведения в степень.
Я
   megabax
 
20.05.18 - 12:54
Анализировал код на Delphi, написанный другим программистом. Встретил там вот такую функцию

FUNCTION STP(x,y:double):double;
begin
  stp:=exp(y*ln(x));
end;

но ведь это же просто x^y. Объясните мне, пожалуйста, смысл подобных манипуляций? Так что, быстрее считает? Или в делфях нет родного возведения в степень?
 
 
   Aleksey
 
1 - 20.05.18 - 13:02
http://info-master.su/programming/pascal-functions/power.php

Функция Power
Функция Power в Паскале (и многих других языках программирования) выполняет возведение числа в степень.
..
Эта функция возводит число Base в степень Expon и возвращает результат. В реальности функция возвращает результат выражения:

Exp(Expon * Ln(Base))
   Ислам
 
2 - 20.05.18 - 13:05
(0) А какое было условие задачи? Если "написать функцию возведения в степень без использования функции power", то там все правильно сделано. Хотя есть и другие способы, но они более длинные.
   d4rkmesa
 
3 - 20.05.18 - 17:27
(0) Мы не знаем предысторию, может разработчик портировал библиотеку с другого ЯП или, к примеру, Turbo Pascal, где такой функции не было.
   spectre1978
 
4 - 20.05.18 - 17:39
(0) скорее всего, код был перетащен из Турбо-Паскаля. А в нем - таки не было. Функция Power появилась в модуле Math, который имелся в Delphi, но отсутствовал в Borland Pascal 7.0 и Turbo Pascal 7.0, поэтому там возводили в степень именно так как написано.
   spectre1978
 
5 - 20.05.18 - 17:46
(1) ну, в стандартной библиотеке Си она зовется pow, а в бейсике это вообще оператор. Так что насчет многих вопрос сложный. К сожалению, более-менее стандартного именования для этой функции нет, поэтому каждый раз приходится разыскивать, если не знаешь (в отличие от sin и cos, например).
   Ислам
 
6 - 20.05.18 - 18:01
(5) Ее всего два вида - pow и power, чего там искать?
Ну еще конечно STP - сокращенно от STEPEN, что тоже не нужно искать, и так очевидно что если подчеркнуто красным pow/power, значит юзаем STP.
   Сияющий в темноте
 
7 - 20.05.18 - 18:07
Помнится,был очень старый Basic для древних компов на 8битном процессоре,так там умножение через сложение логарифмов делали,и утверждалось,что так быстрее.
   sdv2000
 
8 - 20.05.18 - 20:29
run bas
   jsmith82
 
9 - 20.05.18 - 20:31
Дельфи - страна чудес
   bolder
 
10 - 20.05.18 - 20:43
(0) Операция возведения в степень существенно усложняется когда х и/или y - вещественные числа.Тогда только как в (0).Все функции решающие эту задачу не более чем обертка над (0).
 
 Рекламное место пустует
   DomovoiAtakue
 
11 - 22.05.18 - 10:42
(0)Не знаю как сейчас, но раньше точно такой функции не было x^y. Это стандартный способ возведения в степень, даже если не знать математику, этому учат в школе и институтах.
   Михаил Козлов
 
12 - 22.05.18 - 11:02
(0) Хотелось бы узнать, а как еще можно возвести (вещ.) число в вещ. степень?
На заре ВТ были диссертации, как сделать вычисление логарифма побыстрее. То же касается и тригонометрических функций. Кстати, в Turbo Pascal синус вычислялся с точностью только 4 знака после запятой.
Что скрывается за POW или POWER или x^y знает только разработчик.
   Кирпич
 
13 - 22.05.18 - 11:10
(12)"Что скрывается за POW или POWER"
это же exp(y*ln(x)); и скрывается
   bolobol
 
14 - 22.05.18 - 11:17
а exp и ln - это не нужно вычислять?...

Ну, хорошо, для недалёких, можно пример решить:

2.17^3.51

вариантами прямого и хитрого возведения?
   Вафель
 
15 - 22.05.18 - 11:39
(14) эти функции вычисляются аппаратно
   Ненавижу 1С
 
16 - 22.05.18 - 11:45
(0)
>>в делфях нет родного возведения

его нигде нет на данной архитектуре
   bolobol
 
17 - 22.05.18 - 11:45
(15) Я что-то пропустил в своей жизни... Есть схемы, многократно и не на целое число умножающие е - аппаратно, но любую другую цифру аппаратно не умножающие?
   Вафель
 
18 - 22.05.18 - 11:47
(17) там по другому считается. учи матан
   bolobol
 
19 - 22.05.18 - 11:49
(18) Понять бы, куда учить. Несколько лет матан давали, а толку ео применения - так и не увидел. Забыл даже то, что учил.
Что значит "по-другому"? Я понимаю, извернуть прямое умножение формулой, дающей аналогичный результат - это доказуемо, формулу можно упростить до исходной задачи.
Но что есть "по-другому считается возведение в степень числи е"?
   Вафель
 
20 - 22.05.18 - 11:49
вот код ассемблера для экпоненты
fld         dword ptr [x]
fldl2e
fmul
f2xm1
fld1
faddp       st(1),st

http://www.cyberforum.ru/assembler-math/thread146337.html
   Tateossian
 
21 - 22.05.18 - 11:50
(17) Сейчас на уровне АЛУ в ядре шифрование поддерживается - это значит, что реализованы сложные вычисления без использования памяти, все на на регистрах ядра вычисляется.
   Ненавижу 1С
 
22 - 22.05.18 - 11:51
кстати, в большинстве случаев эти функции неправильно ведут себя при x=y=0
   Вафель
 
23 - 22.05.18 - 11:51
(19) скорее всего через ряды или бесконечную дробь
   Tateossian
 
24 - 22.05.18 - 11:52
Помню как умножение на два делается - Битовым сдвигом влево.
   assasu
 
25 - 22.05.18 - 11:54
(0) для экспоненты и логарифма степенные ряды выглядят проще. поэтому вычисление именно такое.
   bolobol
 
26 - 22.05.18 - 11:55
Новое слово на сегодняшний день - "степенные ряды"...
   spectre1978
 
27 - 22.05.18 - 11:55
рядами все делается. Что на калькуляторе, что на компе. Другое дело что это внутри проца уже зашито, т.е. аппаратно.
   spectre1978
 
28 - 22.05.18 - 11:55
нового ничего с 18 века не придумали, увы
   Михаил Козлов
 
29 - 22.05.18 - 13:41
(23)(27) Не уверен: много членов нужно брать, особенно для логарифма. Для и для синуса не уверен, хотя в нем быстросходящийся ряд.
   NikVars
 
30 - 22.05.18 - 15:17
Вот и выяснилось, что тотальное изучения матана в технихических вузах - дибилизм существующей системы образования. А использование для этого ручки, листочка и препода перепачканного мелом, тем более...
   Михаил Козлов
 
31 - 22.05.18 - 17:18
(30) Насчет дебилизма не могу согласиться: учиться было интересно, и, надеюсь, ориентируюсь (в матане), хотя прошло 48 лет. Благодаря преподавателю Кутасову Сергею Александровичу.
Не могу сказать, что знания матана активно использовал, но стиль помогал.
   Вафель
 
32 - 22.05.18 - 17:22
(29) там выячислется для х в промежутке (-1; 1)
   Вафель
 
33 - 22.05.18 - 17:22
для остальных уже обработкой
 
 
   spectre1978
 
34 - 22.05.18 - 20:21
(29) ну а что делать. Если у вас есть только память и четыре арифметических действия, то вариантов-то немного. Вы можете что-то дернуть из заранее занесенной разработчиками в память таблицы; что-то проинтерполировать между табличными значениями; и рассчитать функцию, используя разложение в ряд. Можно скомбинировать это все.
   ERWINS
 
35 - 22.05.18 - 20:27
Там используется формула апроксимации по таблице линейных приближений, а потом шаги методом ньютона
   Михаил Козлов
 
36 - 22.05.18 - 20:52
(32) Для синуса - возможно. А для экспоненты или логарифма - плохо себе представляю. Просто не знаю, как реально происходит вычисление экспоненты. В частности, как представлено основание натуральных логарифмов. Возможно, рациональным числом с большими числителем и знаменателем или коyечным числом членов цепной дроби).
Это я к тому, что за, казалось бы, "простыми" функциями может лежать нечто малоизвестное.
Например, есть очень быстрый алгоритм вычисления квадратного корня (с "суперэкспоненциальной" сходимостью) и время вычисления SQRT(x) может сильно отличаться от x^1/2.
   DomovoiAtakue
 
37 - 23.05.18 - 02:54
(30)Так а куда без матана? Матан - инструмент для других наук, которые помогают решать сложные задачи.
   NikVars
 
38 - 23.05.18 - 09:44
(37) О, да! Особенно выбор жены-мужа, математическая оценка ипотеки, купи-продайка и прочее... И главное, каждому технарю, и еще главнее с ручкой и листочком. Очнись! Ты не в 18 веке!
:)
   Михаил Козлов
 
39 - 23.05.18 - 10:16
(38) В вузе дают общее и специальное образование. Общее занимает максимум 2 года. Матан входит в общее.
Мой лектор как-то сказал: "Неважно что учить, хоть начертательную геометрию, лишь бы мозги развивались". Именно для этого и нужны общие дисциплины. Например, в теоретической физике Вы найдете самое большое разнообразие моделей (подходов), а в жизни теорфиз не нужен.
Ориентация на использование современных инструментов порой приводит с комическим ситуациям: один из наших преподавателей в Париже упоминал случай, когда в качестве ответа на задачу оценить радиус Земли (по каким-то другим данным), студент получил 10 см и его это не смутило.
Сам сталкивался: "Девочки, Воронеж это на Урале?".
   NikVars
 
40 - 23.05.18 - 10:31
(39) Вот видишь, не помогает терфизика для поиска Воронежа.
Причем, одним не поможет, если они ее будут изучать, другим - если не будут. Кста, пример твой "про Воронеж" это логическое следствие изучения матана или терфизики?
   Гобсек
 
41 - 23.05.18 - 10:38
Человек может неплохо разбираться в точных науках и плохо в географии
   Малыш Джон
 
42 - 23.05.18 - 10:41
(40) вообще - это логичное следствие того, что у данных людей самые сложные задачи, которые они могут представить - это "выбор жены-мужа, математическая оценка ипотеки, купи-продайка и прочее... "
   Малыш Джон
 
43 - 23.05.18 - 10:42
+(42) им тупо не нужны мозги для жизни. А если уж свои мозги не нужны, то нахрена им какой-то Воронеж?
   bolobol
 
44 - 23.05.18 - 11:13
Не знаю, не знаю... где Урал, о фразы "Ты что, с Урала?" и "Воронеж" - частенько в одном контексте встречаются. Из чего можно сделать вывод, что Воронеж на Урале, вполне логичный вывод.
   Separator
 
45 - 23.05.18 - 11:14
(39) На самом деле это отмазка: вас (и нас), просто плохо учили. И  , тем более, не учили применять полученные знания... такие вот "лекторы"
   Separator
 
46 - 23.05.18 - 11:16
Вспомнил. Это называется "функциональная безграмотность"
   bolobol
 
47 - 23.05.18 - 11:16
(45) Нас учили вообще лишь "договориться, как сдать предмет", по-большей части. И, это не о деньгах или других материальных компенсациях кому-либо.
   Кирпич
 
48 - 23.05.18 - 11:27
Нафиг вообще нужно это поголовное высшее образование. Людей, которых действительно стоит учить по вышке, гораздо меньше и работать они должны по специальности и зарплата должна быть соответствующая. Опустили вышку до уровня ПТУ. Автор ветки стопудово институт закончил и задает дикие вопросы на форуме.
   NikVars
 
49 - 23.05.18 - 11:28
(48) Плюсую!
 
 Рекламное место пустует
   Lama12
 
50 - 23.05.18 - 11:39
(48) Красавец! :-) Все точно подметил.
   Малыш Джон
 
51 - 23.05.18 - 11:46
(48) от меня тоже плюс

На текущий момент, в 95% случаев идут не получать знания(так как они потом реально не нужны, а нужна бумажка, что есть ВО), а сдавать экзамен (или, как справедливо написано в (47), "договориться, как сдать").
ну и потом закономерно возникают вопросы "а зачем оно вообще надо?".
   Михаил Козлов
 
52 - 23.05.18 - 11:50
(45) Считаю, что меня учили неплохо (не все учителя и преподаватели, но большинство).
За что я им благодарен - они свое дело сделали.
А найдут ли знания (база) применения на практике - это и от человека зависит и от обстоятельств: "Ландау, погибший в хромом лаборанте, Коперник, погибший в Ландау галантном - Встаньте".
(48) Пусть человек сам решает, нужна ли ему вышка и зачем.
Система должна предоставить ему возможность такого выбора.
Бесплатно, для тех, кто "перспективен", платно - по желанию.
   Lama12
 
53 - 23.05.18 - 11:50
(39) Хм... странный у вас препод был. Хотя х.з. Мне вот вообще предметы не даются пока я не пойму где их применять можно. Из-за этого с языками (русский, английский, немецкий) всегда проблемы. Линейную алгебру плохо знаю, т.к. узнал что ее моно применять при работе с 3d графикой только после того как курс закончился. Та-же ситуация с ТАУ. Когда начал готовится к экзамену решил посмотреть оглавление учебника, а там перед оглавлением были таблицы с заменой блоков управления электронными схемами. Тут я понял что это за предмет, но опять было поздно. А так и вышку по жизни использовал, и термех, и философию и политологию, и даже историю. Хотя с историей конечно сложновато...
   Separator
 
54 - 23.05.18 - 12:26
(52) Есть у меня знакомый. Офицер ПВО в отставке. Тоже утверждал, что его учили хорошо его делу.
Вот, потом как-то, обмолвился, что стрелять из табельного ПМ и, при этом, попадать в мишень, он научился уже работая охранником...
   Кирпич
 
55 - 23.05.18 - 12:27
(52) "Пусть человек сам решает, нужна ли ему вышка и зачем. "
Ясен пень вышка уму нужна. Только ума у него нету на эту вышку. Я хочу что бы инженер был уважаемый человек, а не любая баба с пузом с тремя высшими образованиями.
   Малыш Джон
 
56 - 23.05.18 - 12:34
(55) ну умы, они разные бывают,
писать хорошие картины или стихи - тоже ум нужен, со своим укладом.
Но для технарей - конечно вышка крайне желательна(по крайней мере - прикладные направления)
А инженеров, реально классных инженеров - и сейчас уважают, потому что днем с огнем не сыщешь.
   Новиков
 
57 - 23.05.18 - 13:09
(53) Если преподавать так как ты хочешь - с пониманием, то финальный предмет должен аккумулировать в себе солянку из всего прошедшего материала/курсов. Практика показала, что много студентов будет пересдавать какой-то контроль по несколько раз, и не факт что сдаст. Я поясню - есть такой предмета схемотехника и там есть курсач - спроектировать какое-то устройство, которое предположим тупо должно считать в каком-то дд-коде до 16. Результат должен быть представлен как в виде расчетно-пояснительной записки, включая весь комплект конструкторско-технологической документации. Эту простую задачу на самом деле решить комплексно для студента крайне тяжело, т.к. ему во-первых нужно знать университетсткий курс прикладной теории цифровых автоматов, чтобы элементарно можно было построить нужные схемы. Это автоматом включает знание курса по булевой алгебре. Далее, нужно перенести твои абстрактные автоматы на элементную базу - это курсы по непосредственно схемотехники, электроники, и электротехнике. Далее, после получения собственно схемы, нужно развести саму плату, либо запрограммировать ПЛИС. Соответственно, это либо Аltium и полный фарш, либо разводка в altium, симуляция где-то еще. Но и это еще не все. Софт скорее всего, если в случае печатной платы, не до разведет вам ее до конца, нужна будет ручная доразводка. Это еще один курс. Заметьте - вот_это_все - это очень простая задача, уже сформулированная, где нет никакого матана, нет никаких оту и прочего дерьма. Т.е. кто-то поставил учебную задачу и сформулировал ее. Если перейти к мало-мальски реальной задачи, то до постановки собственно задания на разработку, нужна некая мат.модель самого объекта. Это еще минимум 3 курса оту - и это только введение.

И получается, если преподавать так, чтобы "было понятно где это применять" - мало кто доучится до конца. Скорее всего единица с потока, и то хорошо. Поэтому делают не так - а преподают кучу всего в надежде и расчете того, что когда надо - ты вспомнишь и будешь знать "где копать дальше".
   bolobol
 
58 - 23.05.18 - 13:14
(57) В этом примере, как раз - нет непонятного. От оформления технической документации, до элементов реализации.
А вот в обсуждаемой теме матана - там всё непонятно.
П=Ф(х) разложили в ряды, преобразовывали в течении трёх часов и в конце - доказали, что да, что ни делай, а П=Ф(х).
Вот так мимо пролетают трёх часовки в течении трёх лет
   NikVars
 
59 - 23.05.18 - 13:19
(58) Плюсую, а потом "спецы" с этим "П=Ф(х)" биби делают, асфальт укладывают, дома строят, людей лечат. А мозги у всех невероятно развиты, что просто АХ!
   Йохохо
 
60 - 23.05.18 - 13:19
(58) это чтобы потом попытаться объяснить, почему ты сделал плохо, а тот кто учился - хорошо. Чтобы о от О отличал
   bolobol
 
61 - 23.05.18 - 13:21
И от 0
   Малыш Джон
 
62 - 23.05.18 - 13:22
(58) это чтобы понимал суть разложения в ряд, а не тупо запомнил, что "Ф(х) = сумма таких-то элементов"
и тогда вопросов, подобных (0) не возникнет
   Малыш Джон
 
63 - 23.05.18 - 13:23
(59) ты опять путаешь... этим занимаются как раз те, кто всё вышеперечисленное в свое время "ниасилил"
   bolobol
 
64 - 23.05.18 - 13:27
(62) Суть-то как раз и непонятна на подобных примерах. Единственный вынос с пары - это ощущение, что цель у препода была - изрисовать неважно чем восемь досок и, заставив всё это записать, потом проверить записи. Ибо спрашивать что-либо - было, тупо - бесполезно.
   Йохохо
 
65 - 23.05.18 - 13:30
(64) тебе не преподавали теорему об эквивалентности определений температуры похоже
   Новиков
 
66 - 23.05.18 - 14:11
(58) ну, здесь элемент звездежа небольшого. В Универе на инженерной специальности, матан не дается ради матана - это общак. Выжимки/результаты/аппарат применяется на старших курсах уже в прикладных предметах.

Это как изучение теории интерполяции в спец.главах матана. Ты никогда не поймешь зачем оно надо, пока дойдешь до курса компьютерной графики и там не применишь это. Но если ты не будешь знать теорию, тебе нечего будет применять и ты вообще ничего не сделаешь. Аналогично, взгляни на чувака и количество аналитической геометрии:

https://habr.com/post/342510/
https://habr.com/post/342708/

Причем, там чувак постулирует многие вещие, как уже известные в каких-то ранних курсах, где все это давалось как теория, которую ты описал как "П=Ф(х) разложили в ряды, преобразовывали в течении трёх часов и в конце - доказали, что да, что ни делай, а П=Ф(х). "
   DomovoiAtakue
 
67 - 23.05.18 - 16:31
(38)Я например видел конфу где себестоимость на производстве нельзя было посчитать линейно и ее посчитали через дифуры, а для этого уже нужен матан.
Мне отец говорит что и математика не нужна, т.к. она не используется в программировании :) (точнее было бы сказать что именно он ее не использует) А я использую и мне уже нужна. Кто-то решает сложные задачи и ему уже нужен матан, а кто-то не представляет даже как можно обходиться без методов численного анализа. У каждого свой уровень задач.
   spectre1978
 
68 - 23.05.18 - 16:53
(62) а что не так в вопросе в (0)-то? Суть вопроса была в том, что он _не знал_, есть ли функция возведения в степень в применяемом языке. Ничего страшного я тут не вижу, все чего-то не знают и все спрашивают. Вопрос проще пареной репки, возникал он почти у всех олдскульных пасквилянтов или у тех кто сейчас разбирается со старым кодом... Чего тут такой срач из-за этого развели - чет я не вдуплю.
   dezss
 
69 - 23.05.18 - 17:02
ОФФ:
(68) А тут всегда так)))
Могут сюда еще политику подтянуть, а там и до обсуждения космоса недалеко)
   bolobol
 
70 - 23.05.18 - 17:03
(68) Темой промахнулся?... хотя, нет - вроде, про возведение в степень пишешь... Тогда, про какой срач пишешь?
Лучше бы на вопросы ответил, коль вопрос прое пареной репы
   spectre1978
 
71 - 23.05.18 - 21:46
(70) не поверите - ответил еще в (4)... :)
   spectre1978
 
72 - 23.05.18 - 21:54
Не, не промахнулся. Я имею в виду вот эти пространные телеги про матан, нужность его знания и незнания и прочую ерунду, которые вообще потеряли связь с вопросом... Впрочем, ладно, чем бы дети не тешились.
   Злопчинский
 
73 - 23.05.18 - 22:00
(54) Фигня какая. я из ПМ стрелял вообще отвратно, а из карабина и АКМ - выше среднего.
   bolobol
 
74 - 24.05.18 - 08:41
(72) Да, вы просто не в теме, даже вопроса. Тут другая тему обсуждается, совершенно в другом контексте.
   Separator
 
75 - 24.05.18 - 14:34
(73) Вопрос именно в ПМ. Тот знакомый не просто так кипятился: оказалось, что за годы службы и учебы ему никто не показал, как правильно осуществлять хват пистолета. И он при стрельбе, всего-лишь, не той частью пальца нажимал на спуск. В результате - пистолет проворачивался в руке и пуля летела совсем не туда, куда надо.
В охране ему один раз показали и он сразу стал выполнять норматив.
Вот такое образование


Список тем форума
Рекламное место пустует  Рекламное место пустует
Компьютер — устройство разработанное для ускорения и автоматизации человеческих ошибок.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует