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

при том, что определение должно быть истинным ВСЕГДА. А не иногда.

Определение не бывает истинным. И ложным тоже не бывает.

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

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

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

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

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

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

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

Ну если он посчитает, например, символ бесконечности и т.п. в ℤ, то очевидно, кольцом оно быть перестанет. Будет что-то типа римановой сферы. И тогда ещё _/_ нужно ослабить до отношения, чтобы всякие x * 0 = 0 for x < inf ухватить в результате «операции», и отношение равенства _=_ нужно будет заменить на нечто непонятное (но вполне определяемое), чтобы 0/0 = 5 работало.

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

Ну если он посчитает, например, символ бесконечности и т.п. в ℤ, то очевидно, кольцом оно быть перестанет.

Нет, с этим никаких проблем нет, ну будет неархимедово кольцо, и что? Все равно оно кольцо. А если к рациональным числам добавить б/м и б/б то даже будет поле. Собственно, нестандартный анализ на этом факте (что добавление нестандартных элементов не ломает алгебраическую структуру) и живет.

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

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

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

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

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

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

Ты, ебанашка, съехать с базара пытаешься? Не выйдет, ты вполне четко и однозначно нам тут заявил:

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

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

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

при том, что определение должно быть истинным ВСЕГДА. А не иногда.

Определение не бывает истинным. И ложным тоже не бывает.

определение истинно по определению.

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

нахрена?

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

что этот идиот просто проглядел исключение на 0

а «исключение» ты уже определил? Да? Где ознакомится?

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

это ты сейчас про себя, да? Ну молодец, хоть пару страниц осилил...

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

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

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

википедики учились в школе. Я тоже учился в школе. Ты — увы. Не учился в школе. Даже в самой средней.

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

определение истинно по определению.

Хватит уже нести ересь. Определение вообще не является внутренним утверждением теории. Это просто внешнее соглашение. Определение ничего не утверждает. Оно просто сообщает: «в дальнейшем для краткости будет обозначать вот это за Х».

нахрена?

Потому что иначе твое кукареканье о конечных полях никому не интересно.

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

Я тоже учился в школе.

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

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

Зачем нужны аксиомы? (комментарий)

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

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

А как понимать «ВНЕЗАПНО: множество вещественных(натуральных, целых, рациональных, и т.п.) чисел кольцом НЕ является.»? Это значит «множество [...], целых, рациональных [...] чисел кольцом НЕ является»? Как так? Или опять в определения играем?

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

А как понимать «ВНЕЗАПНО: множество вещественных(натуральных, целых, рациональных, и т.п.) чисел кольцом НЕ является.»? Это значит «множество [...], целых, рациональных [...] чисел кольцом НЕ является»? Как так? Или опять в определения играем?

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

Я не играю. Давай свои определения, если с моими не согласен.

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

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

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

http://en.wikipedia.org/wiki/Ring_(mathematics)#Definition

Вообще не вижу ничего про деление, так как по умножению там моноид, а не группа. Но отношение как решения уравнений — пожалуйста.

С тем же успехом можно заниматься делением нацело в целых числах и удивляться, что обратных к умножению не получается (как делить 4 / 3? пусть 1, но 3 * 1 != 4, так же с 4 / 0, пусть x, но x * 0 != 4 — WTF?).

http://en.wikipedia.org/wiki/Field_(mathematics)#Definition_and_illustration

Вижу, что уже абелева группа на F \ {0}, так что в ней можно делить умножая на обратный элемент (не важно с какой стороны) который берётся из F \ {0}. И все конкретные модели реализующие такую теорию ведут себя именно так. Как ты возьмёшь 0 из F \ {0}, возьмёшь обратный от него и умножишь на него, поделив тем на ноль? Твоя математика вообще не тайпчекается :)

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

Не думаю, что прокатит

Прокатывает

в случае римановой сферы структура поля ломается

Это в случае римановой сферы. А так добавляется не один нестандартный элемент, а целое множество - inf, inf+inf, inf^2 и так далее, тогда структура прекрасно сохраняется.

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

Давай свои определения, если с моими не согласен.

«Алгебра», Ленг. Там все определения есть. Только не квазимодо и не мои - а общепринятые математические определения.

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

За 30$/час я готов попробовать написать отсебятину и изучить алгоритмы используемые в gmp? Времени - часов 40. Если согласен - пиши на мыло куда счёт выписывать, договоримся.

Напомню, это эта тема никак не относится к определениям которые тут обсуждаются.

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

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

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

дык определи деление

<ссылка_на_которую_я_не_ходил> Вообще не вижу ничего про деление

а зачем мне твоя ссылка? Чем она лучше этой?

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

не получается. И что? Я разве требовал, что-бы получалось? Давай ты решишь проблему деления, напишешь программу, которая говорит «не получается», или «получается 1234545».

Вижу, что уже абелева группа на F \ {0}, так что в ней можно делить умножая на обратный элемент (не важно с какой стороны) который берётся из F \ {0}. И все конкретные модели реализующие такую теорию ведут себя именно так. Как ты возьмёшь 0 из F \ {0}, возьмёшь обратный от него и умножишь на него, поделив тем на ноль? Твоя математика вообще не тайпчекается :)

няня. Я у них поел.

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

«Алгебра», Ленг. Там все определения есть. Только не квазимодо и не мои - а общепринятые математические определения.

ты читал эту книгу? Забыл? Или в чём проблема? Ну дай фотки...

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

ты читал эту книгу?

Читал. Теперь ты почитай.

Забыл?

Нет. С чего ты взял?

Или в чём проблема?

В твоем невежестве.

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

За 30$/час я готов попробовать написать отсебятину и изучить алгоритмы используемые в gmp? Времени - часов 40. Если согласен - пиши на мыло куда счёт выписывать, договоримся.

как я тебе могу заплатить хоть $1, если ты азов не знаешь? Даже простую программку не осилил. Куда мне тебя послать с такими «скилами» как у тебя?

Напомню, это эта тема никак не относится к определениям которые тут обсуждаются.

от тебя я не слышал определений. Только бла-бла-бла.

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

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

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

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

ты читал эту книгу?

Читал. Теперь ты почитай.

какую?

Забыл?

Нет. С чего ты взял?

ты не осилил цитирование.

Или в чём проблема?

В твоем невежестве.

в чём? В том, что тебе неведомо?

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

какую?

«Алгебра», с. Ленг.

ты не осилил цитирование.

Какое цитирование?

в чём?

В твоем невежестве. Что тебе непонятно?

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

Извини, но в этом треде остался только один человек говорящий бла-бла и это ты.

Ещё раз повторяю, доказывать тебе что-либо я не сильно заинтересован у меня есть более полезные и интересные дела, я предложил тебе вариант как можно меня заинтересовать, но ты слился, чтож дело твоё.

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

Ты тоже не осилил, представь себе.

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

Видать на ЛОРе все — тупорылые животные, как и емулек, и никто этого вашего кода не поймёт. Даже вы. Ибо вы тоже на лоре.

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

Ещё раз повторяю, доказывать тебе что-либо я не сильно заинтересован у меня есть более полезные и интересные дела, я предложил тебе вариант как можно меня заинтересовать, но ты слился, чтож дело твоё.

ну подумай: зачем мне нужен твой говнокод на говнохаскеле, который за мои деньги доказывает то, что ты говнокодер?

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

Ты идиот? как знание мат теории и определений связано с навыками написания алгоритмов для big integer?

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

Я прошу. Осиль эту простенькую программку.

детка, я читер. Я Кнута читал, у него всё есть. Так не честно. Я не хочу быть подлецом.

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

тебе ни образование, ни опыт не позволят тут никому психику нарушать.

никто не мешает тебе узнавать новое. Я стараюсь помочь. Если это ломает твою психику — не общайся с такими как я.

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

Ты идиот? как знание мат теории и определений связано с навыками написания алгоритмов для big integer?

напрямую. Попробуй написать, и ты всё поймёшь. и речь не про «big», а про просто integer, длинна которого не определена.

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

Колесо это не кольцо как таковое, так что оно не может быть частью какого-либо изоморфизма в Ring. У множества колеса есть подмножество {x | 0 * x = 0} которое может быть кольцом изоморфным (в Ring) расширяемому (либо «тотальному кольцу частей»), что делает такое колесо неким «консервативным» расширением, но само колесо-то не кольцо, если смотреть на все его элементы. Тут изоморфизм к исходному кольцу получается после доставания кольца из колеса с помощью оператора R.

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

Сынок, не хами, а?

детка, ты не слишком оренел? С какого перепуга я тебе «сынок» и могу «хамить»? Сопли подотри сначала.

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

добавляется не один нестандартный элемент, а целое множество - inf, inf+inf, inf^2 и так далее, тогда структура прекрасно сохраняется

Так поверю :) То есть N мы можем расширять кардиналами в одну сторону оставляя полукольцо, а поле такими штуками, там наверно ещё и система бесконечно малых есть для обратных?

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

В общем начинай вести себя нормально сам.

не. Это нарушение правил. Какие-то рамки должны присутствовать даже для меня. Ну если я всегда ругал и насмехался над тупым быдлом, как я могу загнать себя в эту «норму»?

Но это лирика. По теме: ты вбросил говнокод. Тебе уже указали, что этот твой быдлокод работает исключительно не из-за тебя. ИЧСХ — указал не я. Пиши новый, или слейся. А апелляции к возрасту несерьёзны, я тоже не вчера родился. Если я «сынок», то ты — выживший из ума маразматик или труп. Смирись с этим фактом.

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

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

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

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

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

я помню. Но не понимаю, к чему это всё у тебя.

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

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

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