LINUX.ORG.RU

как статически доказать эквивалентость двух произвольных алгоритмов

 


2

2

Под эквивалентностью я подразумеваю равенство выходных данных и произведенных побочных эффектов

Например, для двух функций вычислений n-го числа фибоначчи (питон)


def fib1(n):
    a, b = 0, 1
    for _ in range(n):
        a, b = b, a + b
    return a

def fib2(n):
    if n < 2:
        return n
    return fib2(n-1) + fib2(n-2)

как доказать что соотношения множеств входных и выходных данных для этих функций одинаковы (не учитывая переполнение стека для второй) ?

Питон тут для примера, для какого-нибудь лиспа, наверное, проще будет сделать это


Ответ на: комментарий от emulek

Существование компьютера — аксиома.

Компьютере, определенно, существует. Но мы же не о компьютере а о некоем числе N. Которые ты даже не удосужился определить.

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

машина придёт к тому состоянию, которое уже было. И всё опять повториться.

Ты ведь сейчас не о машине Тьюринга (и эквивалентах) говоришь?

конечно нет. Ибо по бесконечной ленте можно бесконечно долго передвигаться. А по конечной — нельзя(кроме циклов конечно).

Какой стороной конечность машины относится к возможности останова? Ты говорил, что алгоритма нет потому, что «остановилось» не определено.

я говорил «не определено». Потому взял, и определил. Т.е. программа считается остановившейся тогда, и только тогда, когда входит в конечный цикл(с конечным числом состояний). Если число битов конечно, и если машина детерминирована(т.е. из состояния X машина ВСЕГДА переходит в Y), то очевидно, что проблема останова тривиальна.

Она нетривиальна только на машине Тьюринга, т.к. там бесконечная лента. Вот для неё проблема останова неразрешима.

не существует например символа, на который начинается любой никнейм на ЛОРе.

Иди дальше: «иногда» такой символ существует, а «иногда» нет.

нет. Такой символ никогда не существует, с тех времён, как на ЛОРе появился ник на другую букву. Это как результат 0/0 — проверка показывает, что любое число подходит, и именно потому конкретного ответа не существует.

Т.е. намеренно игнорируешь?

ты ещё на китайском аргументируй, я тем более буду игнорить.

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

Есть общепринятое определение. Если ты говоришь «деление», то подразумеваешь умножение на обратный элемент. Если ты имеешь ввиду что-то другое - не называй это делением.

детка, узнай, что такое «определение». Можешь спросить у учительницы, она должна знать, если молоденькая. Они это проходят в своём педе.

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

ну-ка определи мне ноль...

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

. Т.е. программа считается остановившейся тогда, и только тогда, когда входит в конечный цикл(с конечным числом состояний).

Ну охуеть просто. Может, ты перестанешь придумывать свои определения? Есть вполне четкое и однозначное определение того факта, что МТ останавливается. И оно не имеет отношения к тому, что ты несешь.

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

ну-ка определи мне ноль...

Нейтральный элемент по сложению.

детка, узнай, что такое «определение».

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

Например, придуманную тобой операцию, которая отношения к делению не имеет, мы будем называть, ну, например, «йобаление». «10 йобалить 5 равно 2» и так далее.

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

Какой компьютер, недоумок? Еще раз - речь о программе. Для определенности будем считать что исполнять ее я буду сам, в уме, помогая себе ручкой и бумажным блокнотом. Чему будет равно N?

пропорционально размеру блокнота, очевидно жеж!

Но МТ не имеет отношения к компьтерам. Только к программам.

ты объелся белены.

она синтаксически корректна.

не существует описания и определения бесконечного синтаксиса. Такое определение сам бы было бесконечным.

Компьютере, определенно, существует. Но мы же не о компьютере а о некоем числе N. Которые ты даже не удосужился определить.

удосужился. См. выше. Но только для конечной машины. А для бесконечной — съешь ещё белены, и всё будет ОК.

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

пропорционально размеру блокнота, очевидно жеж!

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

не существует описания и определения бесконечного синтаксиса.

Что ты подразумеваешь под «бесконечным синтаксисом»?

удосужился. См. выше.

Что см. выше? Еще раз, перед тобой программа. Никаких компьютеров нет. Только программа. Текст. Теперь дай четкое и конкретное определение этому твоему «числу N» для даннйо программы. Что это вообще за число? Откуда оно берется? До тех пор пока ты определения не дашь рассуждать о его существовании смысла нет.

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

Нейтральный элемент по сложению.

орт тоже нейтрален по сложению. Но он единичный, а не нулевой.

Еще раз - если пользуешься общепринятыми терминами, то пользуйся ими в их обычном, общепринятом значении.

детка, если вся известная тебе математика, это незаконченная программа средней школы — я в этом не виноват.

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

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

Число существует, но его величина мне неизвестна. А ты например не знаешь, какой стороной упала подброшенная мною монетка.

А определить просто: подели площадь всех страниц на площадь одного символа.

не существует описания и определения бесконечного синтаксиса.

Что ты подразумеваешь под «бесконечным синтаксисом»?

тот, на котором программу для МТ писать можно. Он не определён, причём принципиально. В обычной сишке через КОНЕЧНОЕ число символов после { следует }. Для бесконечной МТ тебе ещё надо определить, верна ли конструкция { ... в которой } «когда-нибудь обязательно будет, через бесконечное число символов». Будет или нет — проверить в принципе невозможно, потому нужно (не)верить на слово.

Т.о. выполняющаяся на МТ программа даже не может выяснить, является-ли она корректной синтаксически. Даже рухнуть не получится.

Что см. выше? Еще раз, перед тобой программа. Никаких компьютеров нет. Только программа. Текст.

нет. Понимаешь? НЕТ бесконечных текстов. Надо говорить: «представь воображаемый текст».

Теперь дай четкое и конкретное определение этому твоему «числу N» для даннйо программы. Что это вообще за число? Откуда оно берется? До тех пор пока ты определения не дашь рассуждать о его существовании смысла нет.

т.к. текст воображаемый, то и число тоже воображаемое. И берётся исключительно из воображения. Нужно вообразить МТ, придумать синтаксис, и решить данный вопрос, в этих воображаемых рамках. Вот Алан доказал, что для его машины проблема останова не решаема. Что сегодня (должно быть) понятно любому программисту. Как и тот, что для реальной машины проблемы нет.

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

Т.е. программа считается остановившейся тогда, и только тогда, когда входит в конечный цикл(с конечным числом состояний). Если число битов конечно, и если машина детерминирована(т.е. из состояния X машина ВСЕГДА переходит в Y), то очевидно, что проблема останова тривиальна.

С таким определением останова проблема не то чтобы тривиальна, ее вообще нет. Просто потому, что останова нет.

Она нетривиальна только на машине Тьюринга, т.к. там бесконечная лента. Вот для неё проблема останова неразрешима.

Опять же, машиной Тьюринга (даже конечной) описанное тобой не является. Ну, «иногда» является, «иногда» нет, хз.

нет. Такой символ никогда не существует, с тех времён, как на ЛОРе появился ник на другую букву

Так «иногда» - это до тех времен. И после. s/никогда/в данный момент/ будет ближе к истине.

ты ещё на китайском аргументируй, я тем более буду игнорить.

Тебя китайцы обидели чем-то? Ты игнорируещь то, чего не понимаешь?

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

Т.е. программа считается остановившейся тогда, и только тогда, когда входит в конечный цикл(с конечным числом состояний). Если число битов конечно, и если машина детерминирована(т.е. из состояния X машина ВСЕГДА переходит в Y), то очевидно, что проблема останова тривиальна.

С таким определением останова проблема не то чтобы тривиальна, ее вообще нет. Просто потому, что останова нет.

на конечной машине — останов есть, а проблемы нет. На МТ останова нет, а проблему давно решил Алан.

Так «иногда» - это до тех времен. И после. s/никогда/в данный момент/ будет ближе к истине.

«никогда» == «за время существования ЛОРа с двумя юзерами», ЕМНИП у них имена на разную букву начинались.

Тебя китайцы обидели чем-то? Ты игнорируещь то, чего не понимаешь?

только идиот будет спорить с тем, чего не понимает. Да, здесь таких 95%.

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

Чушь отчаянно визжит, когда ты её порешь :).

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

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

а вот про определения нуля, единицы и деления аноним абсолютно прав, и практически верно сказал про бесконечности.

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

И да, если ты не понял, то я не оспаривал определения анонима, я лишь указал, что они не годны в случае деления на ноль. А если мера делителя больше нуля, то определения эквивалентны и следуют друг из друга. Деление на ноль конечно не имеет смысла, однако неправильно доказывать отсутствие делителей нуля тем, что их нет из-за определения нуля. Я уже приводил как пример определения факториала нуля, которого тоже «нет по определению». Но оно есть. Просто потому, что как факториал, так и деление — понятия намного глубже этих ваших определений.

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

останов есть, а проблемы нет

Если называть цикл остановом, то согласен.

На МТ останова нет

Ложь, 4.2 - так здесь говорят? Добавлю «иногда», на всякий случай.

а проблему давно решил Алан.

Он доказал ее неразрешимость, насколько я знаю.

только идиот будет спорить с тем, чего не понимает. Да, здесь таких 95%.

А ты написал «это не имеет значения». Путь неидиота, чо.

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

Печалька.. Это единственное, что я могу сказать, читая твой пост. Ты, это, на самом бы деле почитал основы то, это ж школьная программа ещё..

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

Печалька

программу которая делит я увижу? Да/Нет? А то ты как анонимус — только балоболишь, о том, какой я анскильный, а ты — крутой. Теперь вы можете обсуждать и то и другое самостоятельно, мне здесь делать нечего.

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

Если называть цикл остановом, то согласен.

дык я так и сделал.

а проблему давно решил Алан.

Он доказал ее неразрешимость, насколько я знаю.

это и есть решение проблемы. Она не решаема. Это доказано. Проблемы нет.

только идиот будет спорить с тем, чего не понимает. Да, здесь таких 95%.

А ты написал «это не имеет значения». Путь неидиота, чо.

а зачем мне понимать то, что значения не имеет? Ещё я в балете не понимаю, и что?

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

Я не представляю о какой программе ты говоришь, ровно так же не представляю почему я должен её для тебя писать, денег ты мне не предлагал, интересу писать тоже не вижу (т.к. не видел спецификации). А поскольку мои скилы абсолютно не коррелируют с твоей математической безграмостностью то тем более.. Хотя для затрвки:

main = getArgs >>= \([a,b]) -> f a b

f :: Integer -> Integer -> Integer
f = div

Функция f тебе на случай если компилятор для проверки поставить не осилишь, т.к. претензии без копипасты ошибки не принимаются.

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

Он доказал ее неразрешимость, насколько я знаю.

это и есть решение проблемы. Она не решаема. Это доказано. Проблемы нет.

Лолшто? Нет решения - нет проблемы?

только идиот будет спорить с тем, чего не понимает. Да, здесь таких 95%.

А ты написал «это не имеет значения». Путь неидиота, чо.

а зачем мне понимать то, что значения не имеет? Ещё я в балете не понимаю, и что?

И то, что для объективной оценки значения понимание необходимо.

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

орт тоже нейтрален по сложению. Но он единичный, а не нулевой.

Ты бредишь? Какой орт?

детка, если вся известная тебе математика, это незаконченная программа средней школы — я в этом не виноват.

Еще раз - используй термины в общепринятом смысле. Не выдумывай.

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

Число существует, но его величина мне неизвестна.

По крайней мере дай ему определение. То есть нам известно, что каждой программе соответствует некоторое натуральное число. Чем это число отличается? Допустим, нам дана программа и некое число - как убедиться, что это именно _то_ число, а не какое-то другое? Как строится отображение? Каков критерий?

А определить просто: подели площадь всех страниц на площадь одного символа.

Тогда я получу оценку для количества символов, которые может уместить блокнот. Но что это мне даст?

тот, на котором программу для МТ писать можно.

Ты, видимо, бредишь, да? С чего он бесконечен? Давай для определенности возьмем язык комбинаторной логики с одноточечным базисом.

Для бесконечной МТ тебе ещё надо определить, верна ли конструкция { ... в которой }

Какие еще «бесконечные МТ»? Нету никаких бесконечных МТ.

НЕТ бесконечных текстов.

Ну да, нету. Любая программа - это конечная последовательность символов. Что дальше?

т.к. текст воображаемый

Почему воображаемый? Вполне конкретный. Ты ни разу не видел конкретных программ?

Еще раз - дай определение числу N. Строго математическое определение. Вот у тебя есть некая МТ, что является N для этой МТ?

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

я лишь указал, что они не годны в случае деления на ноль.

Определения не могут быть годны или негодны. Они просто есть. Определения - вопрос консенсуса. Принято подразумевать под делением, нулем и единицей вполне конкретные, однозначно определенные объекты. Тебе никто не мешает вводить для удобства какие-то свои, новые объекты - но НАЗЫВАЙ ИХ ПО-ДРУГОМУ.

Просто потому, что как факториал, так и деление — понятия намного глубже этих ваших определений.

Конечно же нет. Никаких «нулей» и «факториалов» самих по себе не бывает. Это просто слова-метки, которые ассоциируются с конкретными объектами.

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

Я не представляю о какой программе ты говоришь, ровно так же не представляю почему я должен её для тебя писать, денег ты мне не предлагал, интересу писать тоже не вижу (т.к. не видел спецификации). А поскольку мои скилы абсолютно не коррелируют с твоей математической безграмостностью то тем более.. Хотя для затрвки:

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

Функция f тебе на случай если компилятор для проверки поставить не осилишь, т.к. претензии без копипасты ошибки не принимаются.

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

PS: и да, язычок мог бы и поэзотеричней выбрать. http://en.wikipedia.org/wiki/Unlambda к примеру. А этот твой хаскель любой задрот поймёт.

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

Для этого тебе нужно всего-то предъявить пруф и сослаться на источник.

Тебе пруфы из учебников уже неоднократно предъявлялись. Но ты ведь не умеешь читать.

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

это и есть решение проблемы. Она не решаема. Это доказано. Проблемы нет.

Лолшто? Нет решения - нет проблемы?

конечно. Ну мы тут про алгоритмы, вот например один из алгоритмов деления — разложить числа на простые множители, и убрать из делимого простые множители делителя. Если удастся убрать все, то ты победил, деление выполнилось нацело. Но для этого надо иметь таблицу простых чисел. Это проблема. Решённая. Она не разрешима. Множество простых чисел бесконечно, и потому невычисляемо. Ты можешь только конечное подмножество вычислить. Потому такой алгоритм деления не применим для любых чисел напрямую, его можно применять только итеративно, с каждой итерацией наращивая таблицу простых чисел. А вот если-бы существовало максимальное простое число, то на МТ его можно было-бы просчитать. Как и все остальные. Тогда деление (на этой МТ) выполнялось-бы тривиально просто.

а зачем мне понимать то, что значения не имеет? Ещё я в балете не понимаю, и что?

И то, что для объективной оценки значения понимание необходимо.

не всего, а только того, что относится к задаче. В данном случае мы про конечное множество высказываний, каждое из которых истинное или ложное. Я тебе пытаюсь объяснить, что «общего случая» просто не существует для такого множества. И нет никакой разницы «ненеемулек» и «нененеемулек». В любом случае, есть ложное высказывание, есть истинное. А общего случая не определено. Ты можешь конечно высказаться «каждый посетитель ЛОРа, который не емулек — не емулек, а который емулек — емулек». Это истинно, но тривиально и не нужно. Других «общих случаев» вывести не получится. Не всё можно обобщить.

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

Для этого тебе нужно всего-то предъявить пруф и сослаться на источник. А у тебя только бла-бла-бла.

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

а претензия тут только одна — делил не ты, а компилятор/процессор.

Rocket science в gmp нет до тех пор пока не доходит до оптимизаций. Реализовывать эти алгоритмы самому смысла не вижу, мне моё время дороже

Про язык, мне как то пофиг, на чем пишу, на том и написал.

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

Ты бредишь? Какой орт?

http://ru.wikipedia.org/wiki/Единичный_вектор Они между прочим тоже аддитивные, их можно складывать. Например им можно придать смысл «перемещение». Перемещение на метр вверх никак не меняет твоё положение на плоскости xy. Потому что перемещение ортогонально к интересующей тебя плоскости. Т.о. орт тоже подходит под твоё определение нуля, однако очевидно нулём не является. ЧиТД

Еще раз - используй термины в общепринятом смысле. Не выдумывай.

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

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

Вроде только при типе Integer

Да, как раз для «поделит пару любых целых чисел», я к тому что это действительно не так просто если писать сам алгоритм деления и с расчётом на эффективность, а готовое, как в GMP, оно сложное и с основано на разной теории чисел.

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

По крайней мере дай ему определение. То есть нам известно, что каждой программе соответствует некоторое натуральное число. Чем это число отличается? Допустим, нам дана программа и некое число - как убедиться, что это именно _то_ число, а не какое-то другое? Как строится отображение? Каков критерий?

я уже вводил определение: N равно максимальному числу битов, которые можно сохранить в памяти. Откуда прямо следует, что у такой машины ровно 2**N состояний.

Тогда я получу оценку для количества символов, которые может уместить блокнот. Но что это мне даст?

число N, которое ты хочешь (точнее, N*s, где s это энтропия каждого символа в битах).

НЕТ бесконечных текстов.

Ну да, нету. Любая программа - это конечная последовательность символов. Что дальше?

так ты с этим согласен? Обещаешь больше не загружать бесконечные тексты в бесконечную МТ?

Еще раз - дай определение числу N. Строго математическое определение. Вот у тебя есть некая МТ, что является N для этой МТ?

для классической МТ числа N не существует во множестве натуральных чисел. Там по определению бесконечная лента.

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

Определения не могут быть годны или негодны. Они просто есть. Определения - вопрос консенсуса. Принято подразумевать под делением, нулем и единицей вполне конкретные, однозначно определенные объекты. Тебе никто не мешает вводить для удобства какие-то свои, новые объекты - но НАЗЫВАЙ ИХ ПО-ДРУГОМУ.

давай сначала определим ОБЪЕКТЫ и ОПЕРАЦИИ.

Конечно же нет. Никаких «нулей» и «факториалов» самих по себе не бывает. Это просто слова-метки, которые ассоциируются с конкретными объектами.

факториал это не объект, это ОПЕРАЦИЯ. Т.е. по сути — алгоритм, если у тебя конструктивное определение.

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

Вроде только при типе Integer? Я знаю, потому и написал, 90% хотелок это покроет.

мне не нужно 90%. Для 90% у меня тоже есть калькулятор. Мне нужно 100%. И что-бы ТВОЯ программа, а не GMP (кстати, оно на сишечке, т.ч. ты уже слил со своим недоязычком). Давай обойдёмся только целыми числами, ладно, если тебе так проще.

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

Тут уже говорили, что любой учебник алгебры подойдёт.

в учебнике ничего не сказано про делители нуля. Это не пруф.

Rocket science в gmp нет до тех пор пока не доходит до оптимизаций. Реализовывать эти алгоритмы самому смысла не вижу, мне моё время дороже

тебя никто не просит реализовывать быстрый алгоритм для x86 с SSE. Меня не волнует его скорость, достаточно О-большого(т.е. «деление» путём декремента мне не подходит). Я знаю, очень долго и муторно вылизывать и оптимизировать такие алгоритмы, что-бы они хорошо ложились на конкретное железо. Но этого и не требуется.

Про язык, мне как то пофиг, на чем пишу, на том и написал.

за то мне не пофиг. Чисто технически мне лень ставить абсолютно не нужный мне компилятор. Вот C/C++ у меня уже есть. Если тебе пофиг, то пиши на них.

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

и с расчётом на эффективность

мне нужно именно «с расчётом». Т.е. такой код, который _можно_ оптимизировать. Но сама оптимизация не нужна. Потому что это — да, долго и не нужно.

оно сложное и с основано на разной теории чисел.

именно об этом я и говорил. Школьного букваря не хватит. Увы.

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

http://ru.wikipedia.org/wiki/Единичный_вектор

Я знаю что такое орт. При чем тут орт?

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

Конечно, можно. И нейтральный по сложению вектор - это нулевой вектор. А никакой не единичный. Единичный вектор нейтральным не является.

Если ноль не будет нейтральным по сложению, то твое умножение по-просту не будет дистрибутивным. А в этом случае - нахуя оно вообще нужно?

Перемещение на метр вверх никак не меняет твоё положение на плоскости xy.

А при чем тут плоскость ху если речь о трехмерном пространстве? В трехмерном пространстве положение вполне меняется. А в двумерном «перемещения вверх» просто не существует.

Т.о. орт тоже подходит под твоё определение нуля

Нет, не подходит. Нейтральный элемент - это такой, при сложении с которым ничего не происходит, то есть x+n = x forall x. При сложении с ортом вектор меняется, x + e != x forall x. Значит е - не нейтральный. И не ноль.

какие термины тебе непонятны?

Мне все понятны, ты просто своих определений устоявшимся терминам не выдумывай. Либо используй общепринятые, либо называй объекты по-другому.

Определений может быть более одного

Конечно, их применение зависит от контекста. Мы сейчас говорим о математике, в контексте математики «деление», «ноль», «единица» и т.д. - это вполне конкретные, четко определенные вещи. Они, конечно, тоже, бывает, имеют несколько определений - но в таком случае эти определения всегда полностью эквивалентны.

. Но абстракция «число» не заканчивается множеством «вещественных чисел»

Нету никакой такой абстракции «чисел». Есть вполне конкретные множества - натуральных чисел, действительных, рациональных и т.д.

Именно в этом множестве вводится упомянутое тобой определение нуля.

Упомянутое мной определение нуля имеет смысл для любого моноида. При чем тут вообще числа? Алгебраические структуры с единичной сигнатурой принято записывать аддитивно (если не сказано иного) и, соответственно, нейтральный элемент (когда он есть) принято обозначать нулем.

Но твоё доказательство вовсе не доказывает отсутствие делителей нуля, оно доказывает лишь тот факт, что делитель нуля не является вещественным числом.

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

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

я уже вводил определение: N равно максимальному числу битов, которые можно сохранить в памяти. Откуда прямо следует, что у такой машины ровно 2**N состояний.

Что за память, что за биты, что за машина? У меня есть только текст программы и описание языка, на котором она написана (синтаксис и семантика языка). Больше ничего нет. Все еще жду определения.

число N, которое ты хочешь (точнее, N*s, где s это энтропия каждого символа в битах).

А если я буду писать более мелко? Или стану запоминать часть информации в уме? Или стирать какие-то части и использовать освободившееся место заново?

Обещаешь больше не загружать бесконечные тексты в бесконечную МТ?

А их никто никогда и не загружает. По определению МТ и входные данные для нее всегда строго конечны. Такие дела.

для классической МТ числа N не существует во множестве натуральных чисел.

Как это не существует? Вот у меня МТ, которая имеет только одно состояние, оно же и начальное и терминальное. Для нее N = 1, 1 - вполне существующее натуральное число.

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

давай сначала определим ОБЪЕКТЫ и ОПЕРАЦИИ.

ОБЪЕКТ - это что угодно. Операции являются объектами в том числе, например. Определение операции можешь прочитать в учебнике. Выше у нас речь идет, более конкретно, о бинарных операциях.

факториал это не объект, это ОПЕРАЦИЯ. Т.е. по сути — алгоритм, если у тебя конструктивное определение.

Но операции и алгоритмы вполне себе являются объектами. Мы можем задавать над этими объектами другие операции/алгоритмы, исследовать свойства этих объектов и т.д.

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

в учебнике ничего не сказано про делители нуля.

Конечно, сказано. Видимо, у тебя были хуевые учебники. Или, скорее, ты их просто не читал.

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

Определение операции можешь прочитать в учебнике.

не могу. В учебнике нет деления на ноль. НЕТ.

Но операции и алгоритмы вполне себе являются объектами. Мы можем задавать над этими объектами другие операции/алгоритмы, исследовать свойства этих объектов и т.д.

а какого хрена ты мне мешаешь использовать другое определение деления, не то, что в твоём учебнике? Ведь ты сам доказал негодность своего определения.

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

не могу. В учебнике нет деления на ноль. НЕТ.

Речь шла об определении «операции» при чем тут деление на ноль?

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

Ты совсем упоротый? Еще раз - у терминов есть четкие и конкретные определения. В данном контексте все специалисты под этими терминами понимают вполне определенные вещи. Если ты хочешь, чтобы тебя понимали - используй термины так, как их используют все остальные. Если буду говорить «стол» и подразумевать под этим, например «солнце» - то это будет глупо, согласись? Вот ты именно такой глупостью и занимаешься.

Ведь ты сам доказал негодность своего определения.

Это не мое определение. Это определение, которым пользуются все математики мира, поголовно. Если я доказал его негодность - то скажи, где, пойду получу свою медаль Филдса.

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

Конечно, можно. И нейтральный по сложению вектор - это нулевой вектор. А никакой не единичный. Единичный вектор нейтральным не является.

является. Если он ортогонален.

Если ноль не будет нейтральным по сложению, то твое умножение по-просту не будет дистрибутивным.

не будет. И да, ты без ненормативной лексики общаться не в состоянии? В вашей среде так принято, да?

А при чем тут плоскость ху если речь о трехмерном пространстве? В трехмерном пространстве положение вполне меняется. А в двумерном «перемещения вверх» просто не существует.

не существует. Другими словами, перемещение «вверх» нейтрально к перемещению влево-вправо. ЧиТД.

Нет, не подходит. Нейтральный элемент - это такой, при сложении с которым ничего не происходит

ничего и не происходит в плоскости xy.

Конечно, их применение зависит от контекста. Мы сейчас говорим о математике, в контексте математики «деление», «ноль», «единица» и т.д. - это вполне конкретные, четко определенные вещи.

да, но только на вполне конкретном множестве объектов, а не где угодно. Например деление определено на множестве вещественных чисел, за исключением делителей нуля. Потому твоё «деление» на самом деле — частный случай общего понятия.

Нету никакой такой абстракции «чисел». Есть вполне конкретные множества - натуральных чисел, действительных, рациональных и т.д.

ну если для тебя «нету», то почему нельзя эту абстракцию ввести?

Упомянутое мной определение нуля имеет смысл для любого моноида. При чем тут вообще числа? Алгебраические структуры с единичной сигнатурой принято записывать аддитивно (если не сказано иного) и, соответственно, нейтральный элемент (когда он есть) принято обозначать нулем.

а если нейтральных элементов бесконечное множество?

Это доказательство работает в любом кольце.

ВНЕЗАПНО: множество вещественных(натуральных, целых, рациональных, и т.п.) чисел кольцом НЕ является.

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

Что за память, что за биты, что за машина? У меня есть только текст программы и описание языка, на котором она написана (синтаксис и семантика языка). Больше ничего нет. Все еще жду определения.

синтаксис и семантика == определение машины.

Всё ещё жду бесконечной семантики...

А если я буду писать более мелко? Или стану запоминать часть информации в уме? Или стирать какие-то части и использовать освободившееся место заново?

бесконечно мелко ты писать не сможешь.

А их никто никогда и не загружает. По определению МТ и входные данные для нее всегда строго конечны. Такие дела.

тогда подписывайся. Не все анонимусы с этим согласны.

Как это не существует? Вот у меня МТ, которая имеет только одно состояние, оно же и начальное и терминальное. Для нее N = 1, 1 - вполне существующее натуральное число.

это частный тривиальный случай.

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

Речь шла об определении «операции» при чем тут деление на ноль?

при том, что определение должно быть истинным ВСЕГДА. А не иногда. Вот твоё определение иногда истинно, а иногда не истинно (и не ложно ЧСХ). Тебе ещё повезло, что ты не влезал в булеву алгебру или в поля Галуа, там такая ерунда постоянно. И нет никакой возможности сказать, что дескать «получится бесконечность»(т.к. в булевой алгебре и в полях Галуа никакой бесконечности быть не может).

Еще раз - у терминов есть четкие и конкретные определения. В данном контексте все специалисты под этими терминами понимают вполне определенные вещи.

на то они и специалисты.

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

Это не мое определение. Это определение, которым пользуются все математики мира, поголовно. Если я доказал его негодность - то скажи, где, пойду получу свою медаль Филдса.

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

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

является. Если он ортогонален.

Ортогонален чему?

не будет.

Но на практике такое умножение никому не нужно. Да и не встречается.

Другими словами, перемещение «вверх» нейтрально к перемещению влево-вправо.

Что еще за «нейтрально по отношению к»? Еще раз - у всех понятий в математике вполне четкое и конкретное определение. Нету никаких «нейтрально к». Элемент нейтрален если при сложении любого другого элемента с ним получаем тот же элемент. Орт не может быть нейтрален, т.к. e+e=2e!=e.

ничего и не происходит в плоскости xy.

Зато происходит по оси z.

да, но только на вполне конкретном множестве объектов, а не где угодно.

Конечно же, ГДЕ УГОДНО.

Например деление определено на множестве вещественных чисел, за исключением делителей нуля.

Представь себе, делить можно не только вещественные числа.

Потому твоё «деление» на самом деле — частный случай общего понятия.

Да все как раз наоборот.

ну если для тебя «нету», то почему нельзя эту абстракцию ввести?

Потому что не нужно. Согласись, если бы кому-нибудь это было нужно, то ее бы кто-нибудь ввел. Но никто не ввел.

а если нейтральных элементов бесконечное множество?

По определению, нейтральный элемент единственен. Действительно, пусть x и y - два нейтральных элемента, имеем x+y=x (по нейтральности у), но и x+y=y (по нейтральности х) => x=y.

ВНЕЗАПНО: множество вещественных(натуральных, целых, рациональных, и т.п.) чисел кольцом НЕ является.

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

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

Всё ещё жду бесконечной семантики...

Какой еще бесконечной семантики?

синтаксис и семантика == определение машины.

Ой, правда? То есть имея синтаксис, семантику и программу можно как-то узнать N, которое соответствует этой программе? Хорошо, берем, как я уже выше говорил, комбинаторное исчисление - где там биты, память и вся прочая придуманная тобой хуета?

Не все анонимусы с этим согласны.

Конечно, все. В определении МТ четко сказано, что МТ бывают только конечными. Это и понятно - если допустить бесконечные МТ, то становится невозможным существование УМТ. А УМТ, как известно, существует.

это частный тривиальный случай.

Ну да, это частный тривиальный случай, который опровергает твое утверждение.

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

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

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

Для полей и рациональных чисел имеется подобная ситуация (ℚ начально среди бесконечных полей нулевой характеристики, остальные конечные поля начальны среди полей фиксированных характеристик).

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