LINUX.ORG.RU
ФорумTalks

Вычисление.

 ,


0

1

Наткнулся случайно на определение «вычисления» в википедии и был несколько ошарашен.

Вычисле́ние — математическое преобразование, позволяющее преобразовывать входящий поток информации в выходной, с отличной от первого структурой. Если смотреть с точки зрения теории информации, вычисление — это получение из входных данных нового знания.

Сразу предвижу критику русской википедии, поэтому привожу англ вариант.

A calculation is a deliberate process that transforms one or more inputs into one or more results, with variable change.

Значит ли это, что отображение функции вида /x.x не является вычислением. И даже функция вида, /x.(maybe x) - после своего отображения, будет считаться вычисленной не всегда. Более того, математическое выражение 3*1 (и еще over 100000) - та же фигня.

Как же это совмещается с комбинаторами неподвижных точек? Есть ли альтернативные определения вычислений?

И почему бы не дать более подходящее определение вышеописанному явлению - ИЗМЕНЕНИЕ. А под вычислением понимать просто процесс трансляции input --> output?

Это специлаьно так сделано, чтобы запутать необремененных мозгом чуваков, вроде меня, или на то имеются объективные причины?

Причём тут изменение? Как раз таки изменения данных нет. Исходные данные никто не меняет, если их поменять, результат ведь тоже поменяется. А результат - это как раз новые данные.

Допустим, функция f(x) = x*x, вычисляет квадрат числа. Для 2 мы получим 4. Число 2 мы НИКАК не можем изменить. Оно как было 2, так и осталось. Если мы его изменим, получится ахинея 2=4, и тогда уже надо считать квадрат от 4 f(4) = 4*4?

BattleCoder ★★★★★ ()

Можно ещё подумать в сторону трудоёмкости вычислений. То есть отсюда вытекает вопрос, следует ли называть таковыми вычисления трудоёмкости 0.

Sadler ★★★ ()
Ответ на: комментарий от BattleCoder

Причём тут изменение?

Ну отображение с изменением. Устроит? Не в этом суть.

anonimous ()

Опять терминологический спор? Термины для того и придумывают, чтобы не было «а я понимаю это как...»

Вся фишка вычислений в их пошаговости. Именно процесс перехода между двумя значениями, выполняемый по правилам, и является вычислением. Просто пара значений — нет.

Чем тут вас смутили Y и компания, я не понял.

ilammy ★★★ ()
Ответ на: комментарий от Sadler

А я что-то сомневаюсь, что это можно назвать вычислениями. Что тут подразумевается под трудоемкостью? В лиспе например есть функция quote. Семантически мы не вычисляем выражение, а с точки зрения интерпретатора оно все равно, вычисляется. В ЯП, по-моему, такого вообще быть не может. Машина все равно совершает работу.

anonimous ()
Ответ на: комментарий от anonimous

Машина все равно совершает работу.

Ну вот, отсюда следует преобразование потока информации внутри этой самой машины. При таком подходе определение верно.

Sadler ★★★ ()
Ответ на: комментарий от ilammy

терминологический спор
Именно процесс перехода между двумя значениями, выполняемый по правилам, и является вычислением. Просто пара значений — нет.

Но ведь вычисление, как процесс, даже концептуально, происходит. Как же его тогда называть в общем случае? Интерпретация?

Чем тут вас смутили Y и компания, я не понял.

Потому что, вроде, шаг редукции нельзя тогда считать эквивалентом шага вычислений.

anonimous ()
Ответ на: комментарий от Sadler

Да, но вместо (quote x) мы можем написать apply (function(x) return x) x - и по сути, по смыслу, а значит и семантически - это абсолютно то же самое. Получается, что мы можем сделать это как явно, так и неявно. В одном случае - внутри исполнителя, в другом - нет. Исходя из Вашего определения, в одном случае мы должны считать это нулевой работой, в другом нет, а ведь разницы то семантически нет?

anonimous ()
Ответ на: комментарий от anonimous

Исходя из Вашего определения

Вашего определения

Я определений не давал, лишь собрал в кучу несколько мыслей, обозначенных Вами.

Моё собственное мнение: вычисление — это величина работы по применению отображения, где работа может измеряться, например, числом тактов процессора, затраченным временем и т.д. Это решает проблему «преобразование есть, а вычисления нет».

а ведь разницы то семантически нет?

Никого не волнует. Если работа в одном случае нулевая, то там вычислений не производилось.

Sadler ★★★ ()
Последнее исправление: Sadler (всего исправлений: 2)
Ответ на: комментарий от ilammy

//offtop

Да, кстати, очень хотелось бы услышать Ваш коментарий вот по этой теме. Это вопрос по поводу одной фразы из переведенной вами книжки. BTW огромный респект.

anonimous ()
Ответ на: комментарий от anonimous

Я не понял, что за формулу вы хотели нарисовать. Могу порекомендовать онлайн-генератор формул из LaTeX, благо их полно.

Вычисления - отображение _одного_ значения - на _другое_. Мне это кажется очевидным, потому, наверное, трудно объяснить.

Иногда значений на вход может быть больше одного, как и на выход, собственно.

BattleCoder ★★★★★ ()
Ответ на: комментарий от BattleCoder

Я не понял, что за формулу вы хотели нарисовать.

Что Вам не понятно? Я напишу словами: такая функция, которая берет аргумент и отображает его в неизменном виде. Это не соответствует Вашему:

отображение _одного_ значения - на _другое_

или как?

anonimous ()
Ответ на: комментарий от anonimous

Ну да, малость ошибся в рассуждениях. Соответствует. Отображение одного значения на другое, учитывая то, что другое может как совпадать, так и отличаться.

А вообще соглашусь с оратором повыше Вычисление. (комментарий)

BattleCoder ★★★★★ ()
Ответ на: комментарий от Sadler

Это решает проблему «преобразование есть, а вычисления нет».

Заранее извиняюсь за тупость. Долго пытался врубиться, но до конца так и не понял. Как это может быть? Интерпретатор в процессе отображения (при этом не важно, то же самое мы получаем значение или другое) все равно затрачивает время и ресурсы компьютера на поиск значения и вывод. Например, у нас есть уже переменная а, которая указывает на символ «а». Мы печатаем в консоли:

>>а #в переводе на русский это означает: найди мне символ а и выведи связаное с ним значение. Интерпретатор ищет в своей таблице символ и связаное с ним значение. И печатает это значение:
>>a

Это соответствует, как раз функции f(x) return x. Т.е. в любом случае машина выполняет работу.

anonimous ()
Ответ на: комментарий от BattleCoder

Отображение одного значения на другое, учитывая то, что другое может как совпадать, так и отличаться.

Ну, я как раз и написал в начале:

А под вычислением понимать просто процесс трансляции input --> output?

соглашусь с оратором повыше

Это, не просто ведь вопрос терминологии. Здесь есть семантическое противоречие. Такая терминология способна ввести (и вводит) в заблуждение.

anonimous ()
Ответ на: комментарий от anonimous

Ну всё, раз выполняет работу, значит проводит вычисления, необходимые для вывода символа, например. То есть вычисления применительно к фактической вычислительной машине — это не только то, что написано в твоём алгоритме, но и всё сопутствующее. Например, автовыделение памяти под очередную порцию данных с этой точки зрения также можно считать вычислением, т.к. оно использует вычислительный ресурс (RAM). Но это только моё ИМХО.

Sadler ★★★ ()
Последнее исправление: Sadler (всего исправлений: 1)
Ответ на: комментарий от Sadler

Ну да, так же и я думаю.

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

anonimous ()

На сарае тоже много чего написано. Но внутри дрова.

Понятие «вычисление» не является строгим математическим понятием. Есть строго определённое понятие «редукция» (во всяких калькулюсах, причём в каждом случае определение своё). А «вычисление» каждый понимает как хочет.

Miguel ★★★★★ ()

Сразу предвижу критику русской википедии, поэтому привожу англ вариант.

«Предвижу критику говна, поэтому дам вам мочу»

Quasar ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.