3^3^3

From
Alexander V. Sotnikov (2:5020/104.120)
To
Boris Rudakov
Date
2000-03-01T13:49:41Z
Area
RU.ALGORITHMS
Hi, Boris!

01 Mar 00 11:07, Boris Rudakov wrote to Konstantin Rabkin:

 >>> математики" и посмотpеть, как тpактyется там. И Фоpтpан здесь
 >>> совеpшенно не пpи чём.
 KR>> А фортран здесь всего навсего при том, что это был _первый_
 KR>> язык, допускающий подобные выражения...
 BR> Ну и плевать на него - мало ли что первый. Первый - не значит
 BR> правильный.

 BR> Я могу привести длинную цепочку рассуждений, показывающую что
 BR> правильно трактовать как (N^N)^N, но вместо этого только скажу что
 BR> операция "/" совершенно аналогична возведению в степень: такая же
 BR> бинарная ассиметричная операция. Однако, все современные трансляторы
 BR> разбирают деления слева направо. С какой стати мы должны возведение в
 BR> степень трактовать иначе ? Только потому что когда-то кто-то решил что
 BR> в Фортране нужно так делать ? Ну и плевать на них :)
1. Человек написавший про фортран, не совсем похоже понимает _откуда_ в зыках программирования взялись приоритеты операций (ответ: математика)
И если ему будет не лень покапаться в истории, то узнает что фортран - это транслятор формул, и не просто абстрактных, а так себе математических.
2. Операция / не совсем аналогична ^. Обращаясь к математике, как истинному источнику приоритетов операций:
ни в одном _нормальном_ математическом учебнике/книжке (а не написанном какой нибудь аспиранткой педвуза) ты не встретишь трехэтажной дроби в которой _визуально_ бы не было видно в каком порядке вычислять дробь, либо это будет разная длина дробной черты, либо одна из частей будет записана горизонтально, а другая вертикально, либо будет разный размер шрифта, либо будут скобки.
Операция ^ всегда _математиками_ вычисляется справа на лево, просто потому что они никогда ее не пишут горизонтально :)
Кто не верит, может в справочниках по рыскать на предмет возведения в степень, а заодно и понятия гиперстепени.
Поэтому из того что компы вычисляют / слева на право, вовсе не означает, что тоже самое годится и для ^.
3. Я встречал буржуйские калькуляторы лет эдак 8 тому назад (а исходное письмо началось с калькуляторов), которые вообще вычисляли без приоритетов
x+y*z=(x+y)*z. И поэтому там не нужны были скобки.
Поэтому _математически_ верный порядок вычисления: x^y^z = x^(y^z)
А языки программирования тут не причем, не зависимо от права первой брачной ночи.

With Best Wishes & Regards,
  Alexander V. Sotnikov [ICQ:7826819] [mailto:al-so@mail.ru]

--- FMail/Win32 1.22
 * Origin: Зеркало жизни: Дай | Die (2:5020/104.120)