Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.
Ограничения: максимум вложений в сообщении — 3 (3 осталось), максимальный размер всех файлов — 300 КБ, максимальный размер одного файла — 100 КБ
Снимите пометку с вложений, которые необходимо удалить
Перетащите файлы сюда или используйте кнопку для добавления файлов
Вложения и другие параметры
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр

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

Автор mnashe
 - июня 27, 2013, 09:36
Цитата: okruzhor от июня 26, 2013, 23:47
Да. Так называемая прямая нотация: Вот есть A, прибавляем ... нет, сначала вычисляем синус, ох блин ... синус от B ... ну вроде разобрались ... нетушки, там не просто B , а надо умножить ... синус ... нет не синус, а эту B умножить на C ... это ж надо резиновую голову иметь ... ладно умножили и чего ... а ну да синусом же занимаемся, и всё это ради сложения, нет, забываем про синус, то есть про сложение, синус был позже, аргумент ведь вычислили ... и забыли ... или вот это число записано ... авось оно и есть ... берём синус от этого ... и что там осталось ... снова перечитываем ... где же это мы ... ага, прибавить A ... неужели всё ... а пофиг, всё равно ошибки гарантированы
;D ;up:
Из этой иллюстрации хорошо видно, что привычная запись не ориентирована на алгоритм расчёта.
У неё другая задача: графически изображать связи между числами. Типа структурной формулы в химии.
А для алгоритма расчёта понятно, что обратная бесскобочная запись идеально. Любой транслятор формул (в компиляторах и т.п.) тем и занимается, что переводит привычную запись в обратную бесскобочную. Ну и в программируемых калькуляторах, когда память была очень дорогой, применяли именно её.
Автор Солохин
 - июня 27, 2013, 09:12
Кстати, а можно ли построить язык (не математический) такого вот типа?
Автор Солохин
 - июня 27, 2013, 09:06
Цитата: okruzhor от июня 26, 2013, 23:47
для польской нотации достаточно управлять стэком глубиной=1
Все-таки, строго говоря, стек имеет произвольную глубину. Например

a b +

требует стека глубины 2: сначала накапливаем два числа, а потом складываем.

Нетрудно привести и пример формулы, требующей глубины, например, 4

a b c d + * +

Которая означает в школьной записи

a+b*(c+d)


Однако мое замечание нисколько не умаляет замечательных достоинств обратной польской записи, которая мне с детства чрезвычайно импонирует
Автор Hellerick
 - июня 27, 2013, 06:12
Насколько мне известно, польская нотация выглядит так: + a sin * b c
Обратная бесскобочная, она же обратная польская — так: b c * sin a +

Не надо путать и называть обратную польскую просто польской.
Автор okruzhor
 - июня 26, 2013, 23:47
Цитата: netch от июня 26, 2013, 17:04
Обратная бесскобочная - это та, в которой a+sin(b*c) заменяется на "b c * sin a +"?

Да. Так называемая прямая нотация: Вот есть A, прибавляем ... нет, сначала вычисляем синус, ох блин ... синус от B ... ну вроде разобрались ... нетушки, там не просто B , а надо умножить ... синус ... нет не синус, а эту B умножить на C ... это ж надо резиновую голову иметь ... ладно умножили и чего ... а ну да синусом же занимаемся, и всё это ради сложения, нет, забываем про синус, то есть про сложение, синус был позже, аргумент ведь вычислили ... и забыли ... или вот это число записано ... авось оно и есть ... берём синус от этого ... и что там осталось ... снова перечитываем ... где же это мы ... ага, прибавить A ... неужели всё ... а пофиг, всё равно ошибки гарантированы

Польская нотация: читаем, берём B, читаем дальше, берём C, что там дальше, умножаем, читаем дальше, вычисляем синус, запоминаем каждый раз только последний результат, снова читаем, берём A, теперь надо прибавить, вот и конец формулы

Проще говоря: т.н прямая нотация требует строить в уме стэк неизвестного заранее размера и помнить его целиком ; для польской нотации достаточно управлять стэком глубиной=1, потому что сама формула в этой нотации заменяет стэк

Более того, записать формулу в польской нотации также удобнее: даже если я сначала сообразил про A, сразу пишу это ; "синус пока не знаю от чего" можно записать как функциональную переменную и вычислить позже ; ясный алгоритм пишется враз, например "A B C * sin +" . Приоритет операций въелся сызмальства и глубоко, хотя без него конечно лучше

Осталась проблема понимания формулы, уяснение её структуры, обобщение, умение её модифицировать . Тут вопрос -- что субъективно удобнее: учитывать конкретные вещи (переменные и функции) или более абстрактные скобки . Скобок меньше, но они тяжелее . Так что в этом (и только этом) аспекте -- паритет . Идеально было бы сочетать обе нотации, но в известных мне диалектах Форта это плохо получается

Реальная проблема чтения на Форте -- отсутствие статичных сигнатур функций . Функция имеет право снять со стэка сколько ей угодно (динамически вычисляемое количество) ячеек ; и также оставить после себя столько, сколько захочется в момент вызова
Автор netch
 - июня 26, 2013, 17:04
Цитата: okruzhor от апреля 14, 2013, 03:57
если бы бумага всегда была доступна и дёшева , все бы писали в "обратной бесскобочной нотации" , которая объективно удобнее (и считалась бы прямой нотацией) [ / имхо ]
Обратная бесскобочная - это та, в которой a+sin(b*c) заменяется на "b c * sin a +"? Если так, то она удобна только для компьютеров на фазе выполнения кода. Для человека это разве что эффективный метод сойти с ума...
Автор Hellerick
 - апреля 14, 2013, 09:04
Плюс возник как сокращение латинского et, а остальные знаки возникли по аналогии. Экономия на пробелах тут не при чем.
Автор okruzhor
 - апреля 14, 2013, 03:57
 > Есть ли логическое объяснение тому что некоторые языки пишутся слева направо, а некоторые справа налево, а другие вообще сверху вниз (думаю, что есть язык, который пишут снизу вверх, но я с ним не знаком).

[ имхо ] Зависит от обычного качества поверхности для записи на момент формирования письменности . Большинство людей правши . Если поверхность плохая (много видимых пятен и дефектов) тогда удобнее писать справа налево , чтобы лучше видеть , где будешь писать . Если же бумага хорошая , то от неё можно не ждать сюрпризов , а больше сосредоточиться на тексте ; тогда важнее видеть только что написанное , а значит писать слева направо .

P.S: мимо темы , но ещё интересный аспект . Когда поверхность для письма дорогая и труднодоступная , её надо экономить , в том числе на пробелах . Отсюда отличия форм букв на одной из границ слова от букв на других позициях в слове . Однако ещё интереснее с арифметической инфиксной записью формул : инфикс служит (помимо символа операции) разделителем и поэтому экономит пробелы ; если бы бумага всегда была доступна и дёшева , все бы писали в "обратной бесскобочной нотации" , которая объективно удобнее (и считалась бы прямой нотацией) [ / имхо ]
Автор Unicum
 - апреля 14, 2013, 03:32
Цитата: Mansur от декабря 21, 2003, 12:26
А вот интересно, почему египтяне, народ, родственный семитским, писали слева направо.
Честно, признаться, я этого не знал. Я считал, что все афразийские языки имеют правостороннюю письменность.
Так ведь в афразийских языках не 1 письмо. Арабское, еврейское, сирийское, арамейское - справа налево. Тифинаг, эфиопское, сомалийское (вышло из употребления), латинское - слева направо.
Автор Unicum
 - января 2, 2012, 09:57
Цитата: ИванЪ Рабинович от декабря 20, 2003, 14:53
Есть ли логическое объяснение тому что некоторые языки пишутся слева направо, а некоторые справа налево, а другие вообще сверху вниз (думаю, что есть язык, который пишут снизу вверх, но я с ним не знаком).
Я логически объяснить не могу; может, просто традиция или что ещё... А кое-что другое объясню подробно. Большинство видов письма - сами знаете, слева направо. Справа налево: арабское, еврейское, сирийское, арамейское, тана (мальдивское), некоторые африканские (нко, менде). Монгольское письмо - вертикальное, вертикальные строки - слева направо. Маньчжурское письмо - это отдельное письмо или разновидность монгольского? Когда-то в Китае тоже писали вертикально, но теперь вроде полностью перешли на горизонтальное письмо. А вот в Японии вертикальное письмо до сих пор используется (наряду с горизонтальным), причём вертикальные строки - справа налево. Когда-то имело место ливийское письмо (похожее на тифинаг) - вертикальное снизу вверх. Также снизу вверх писали на Филиппинах. Современное батакское письмо (в Индонезии) по одним данным - вертикально снизу вверх, по другим - нормально, слева направо. Как на самом деле? Тифинаг раньше писался во все стороны, но теперь - если не ошибаюсь, слева направо.