Re[120]: Immutable object
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 19.01.12 13:19
Оценка: -1
S>Впрочем, вы противоречите сами себе — как бы вы ни задавали функцию перебора — опосредованно, как F:N->X или как Succ: X->X, всё равно вы не получите желаемого результата: трудовато сформулировать условие "функция должна покрыть всё множество X".

не надо ничего формулировать, это уже давно сформулировано в математике: сюрьективное отображение — http://ru.wikipedia.org/wiki/%D1%FE%F0%FA%E5%EA%F6%E8%FF.

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

S> В головах остальных людей голоса дают такое определение отображения

Функция f (отображение, операция, оператор) — это закон или правило, согласно которому каждому элементу x из множества X ставится в соответствие единственный элемент y из множества Y.


допустим, что отображение и функция — это одно и тоже.

тогда это определение противоречит определению многозначного отображения

Многозначное отображение — разновидность математического понятия отображения (функции).

http://ru.wikipedia.org/wiki/%D0%9C%D0%BD%D0%BE%D0%B3%D0%BE%D0%B7%D0%BD%D0%B0%D1%87%D0%BD%D0%BE%D0%B5_%D0%BE%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5
Re[125]: Immutable object
От: samius Япония http://sams-tricks.blogspot.com
Дата: 19.01.12 13:22
Оценка:
Здравствуйте, DarkGray, Вы писали:


S>>Ты определение отображения не забыл освежить?


DG>вот это утверждение: либо не фальсифицируемо, либо подразумевает тривиальный ответ.


DG>избегай, пожалуйста, тривиальных вопросов и переведи, пожалуйста, вопрос в фальсифицируемую плоскость — либо полноценным утверждением: "здесь можно применить вот такую формулировку такого-то определения, и данное утверждение противоречит выводу №5 из этого определения", либо частичным "а как это согласуется вот с такой-то формулировкой определения?"


Попробую:

DG>следующий вариант задает отображение с повторяющимися элементами
DG>

DG>F'(false) -> i, where 0<=i<=2
DG>F'(true) -> i, where 3 <= i < = 5
DG>


Описанная конструкция противоречит определению отображения, взятому, например, отсюда.
Утверждение о том что это задание отображения ложно.
Re[121]: Immutable object
От: Sinclair Россия https://github.com/evilguest/
Дата: 19.01.12 13:30
Оценка:
Здравствуйте, DarkGray, Вы писали:

Ок, хорошо, если вы хотели, чтобы отображение было сюрьективным, стоило так и написать, а не размазывать сопли на весь форум.

DG>тогда это определение противоречит определению многозначного отображения

DG>

DG>Многозначное отображение — разновидность математического понятия отображения (функции).

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

Впрочем, остаётся загадкой главный вопрос: зачем вы занимаетесь умственным онанизмом вместо того, чтобы пользоваться готовыми определениями?
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[124]: Immutable object
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 19.01.12 13:36
Оценка:
S> В головах остальных людей голоса дают такое определение отображения:

почему в головах этих остальных людей определение функции вместо определения отображения?
http://en.wikipedia.org/wiki/Binary_relation

A binary relation R is usually defined as an ordered triple (X, Y, G) where X and Y are arbitrary sets (or classes), and G is a subset of the Cartesian product X × Y. The sets X and Y are called the domain (or the set of departure) and codomain (or the set of destination), respectively, of the relation, and G is called its graph.

The statement (x,y) ∈ R is read "x is R-related to y", and is denoted by xRy or R(x,y). The latter notation corresponds to viewing R as the characteristic function on "X" x "Y" for the set of pairs of G.

The order of the elements in each pair of G is important: if a ≠ b, then aRb and bRa can be true or false, independently of each other.


то определение, которое ты привел соответствует подвиду отображений

functional (also called right-unique[1] or right-definite[citation needed]): for all x in X, and y and z in Y it holds that if xRy and xRz then y = z; such a binary relation is called a partial function.


зы
это как раз к теме, насколько ты свое толкование определений можешь считать эталонным. и насколько тот или иной авторитет (в частности коллективный в виде вики) можно считать эталонным.
Re[122]: Immutable object
От: samius Япония http://sams-tricks.blogspot.com
Дата: 19.01.12 13:37
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, DarkGray, Вы писали:


DG>>тогда это определение противоречит определению многозначного отображения

DG>>

DG>>Многозначное отображение — разновидность математического понятия отображения (функции).

S>Нет, не противоречит. Смотрите определение. Там просто область значений выбирается из 2^Y.
S>И если вам хотелось использовать многозначное отображение, то стоило об этом упомянуть в своём определении, т.к. по умолчанию отображения считаются однозначными.
Да ничего бы не изменилось, т.к. элементом области значений многозначного отображения есть подмножество. И последовательность, определенная многозначным отображением есть последовательность подмножеств, которая записывается, например следующим образом:
{ { 1 }, { 1, 2 }, { 1, 2, 3 }, ...}

Речь-то явно не о таких последовательностях была.
Re[125]: Immutable object
От: samius Япония http://sams-tricks.blogspot.com
Дата: 19.01.12 13:44
Оценка: 5 (1)
Здравствуйте, DarkGray, Вы писали:

S>> В головах остальных людей голоса дают такое определение отображения:


DG>почему в головах этих остальных людей определение функции вместо определения отображения?

DG>http://en.wikipedia.org/wiki/Binary_relation
Кручу-верчу, запутать хочу!

Почему в твоей голове вместо определения отображения определение отношения?
Re[125]: Immutable object
От: Sinclair Россия https://github.com/evilguest/
Дата: 19.01.12 13:45
Оценка: 5 (1)
Здравствуйте, DarkGray, Вы писали:

S>> В головах остальных людей голоса дают такое определение отображения:


DG>почему в головах этих остальных людей определение функции вместо определения отображения?

DG>http://en.wikipedia.org/wiki/Binary_relation
Не вместо, а вместе. Функция, отображение, операция, оператор — это синонимы.

А вы зачем-то вместо определения отображения приводите определение отношения. Когда уже вы прекратите этот бессмысленный троллинг?
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[123]: Immutable object
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 19.01.12 13:55
Оценка: -1
S>И последовательность, определенная многозначным отображением есть последовательность подмножеств, которая записывается, например следующим образом:

это странный вывод.
многозначное отображение X->Nat есть обычное отображение, которое можно отразить и получить Nat->X (при этом если X->Nat было right-unique, то Nat->X будет left-unique), то это даст последовательность. Свойство, чтобы в Nat не было дырок желательно, но не является необходимым. Nat с "дырками" можно еще раз отобразить уже в Nat без "дырок".

с точки зрения математики здесь всё корректно, а вот с точки зрения реальных алгоритмов уже не всегда ("затягивание" дырок может выйти за допустимое кол-во шагов)
Re[126]: Immutable object
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 19.01.12 14:01
Оценка: :)
S>А вы зачем-то вместо определения отображения приводите определение отношения.


согласен был не прав, использовал слово "отображение" вместо термина "отношение".
значит во всем что было написано до этого, вместо слова "отображение" читать "отношение".
Re[123]: Immutable object
От: Sinclair Россия https://github.com/evilguest/
Дата: 19.01.12 14:01
Оценка:
Здравствуйте, samius, Вы писали:

S>Здравствуйте, Sinclair, Вы писали:


S>>Здравствуйте, DarkGray, Вы писали:


DG>>>тогда это определение противоречит определению многозначного отображения

DG>>>

DG>>>Многозначное отображение — разновидность математического понятия отображения (функции).

S>>Нет, не противоречит. Смотрите определение. Там просто область значений выбирается из 2^Y.
S>>И если вам хотелось использовать многозначное отображение, то стоило об этом упомянуть в своём определении, т.к. по умолчанию отображения считаются однозначными.
S>Да ничего бы не изменилось, т.к. элементом области значений многозначного отображения есть подмножество. И последовательность, определенная многозначным отображением есть последовательность подмножеств, которая записывается, например следующим образом:
S>
S>{ { 1 }, { 1, 2 }, { 1, 2, 3 }, ...}
S>

S>Речь-то явно не о таких последовательностях была.
В принципе, я вижу свет в конце тоннеля — если мы скажем, что бесконечной последовательностью является

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

а конечной последовательностью —

сюрьективное многозначное отображение произвольного множества элементов на множество индексов {i: i ∈ ℕ, i ≤ Length}

, то всё бы начало сходиться.
Но, во-первых, это определение сильно отличается от предложенного DG, а во-вторых, оно один хрен не совпадает с тем, чем пользуются все остальные люди.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[127]: Immutable object
От: Sinclair Россия https://github.com/evilguest/
Дата: 19.01.12 14:14
Оценка:
Здравствуйте, DarkGray, Вы писали:
DG>согласен был не прав, использовал слово "отображение" вместо термина "отношение".
DG>значит во всем что было написано до этого, вместо слова "отображение" читать "отношение".
Не получится. Прямая подстановка даёт конструкции, у которых нет смысла на традиционном математическом языке. Вот смотрите:

формальное определение последовательности — это произвольное множество отображенное на множество натуральных чисел

Как тут заменить? Давайте возьмем высказывание, где хотя бы использована форма существительного:

я имел ввиду именно [отображение] отношение множества на натуральные числа

Нет такой конструкции — "отношение на". Парсер сломался.
Ну, давайте выбросим парсер и попробуем сконструировать что-то из того, что вы предлагаете. Есть, значит, некоторое множество X. Есть также и натуральные числа N.
Вроде бы есть какое-то отношение. По определению, отношение — это некоторое подмножество декартова произведения двух множеств. Надо полагать, это множества X и N.
Ок, вот мы задали некоторое отношение R в (X x N). Как нам из этого отношения получить последовательность?
На всякий случай напомню, что в последовательности очередной элемент должен определяться однозначным образом.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[128]: Immutable object
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 19.01.12 14:54
Оценка:
S>Ок, вот мы задали некоторое отношение R в (X x N). Как нам из этого отношения получить последовательность?

потребовать right-unique.
также необходимо, чтобы отношение было полным справа на всем множестве Nat(для бесконечных последовательностей) или на интервале (1..L), если это конечная последовательность.
при этом произвольное неполное справа right-unique отношение X x N можно дополнить (взаимооднозначным полным справа и полным слева на множестве для всех N, для которых есть образ в X) отношением N x N'. что даст отношение X x N', которое будет right-unique и полным справа. если это отношение обратить как N' x X, то оно будет слева полным и unique.
и соответственно последовательный перебор множества N' с использованием отношения N' x X — даст последовательность элементов множества X.

соответственно можно считать, что для произвольного отношения (X x N) преобразуемого в последовательность достаточно показать, что оно является right-unique. а необходимость полноты на N, и то, что требуется ввести дополнительное отношение N->N', если нет полноты — подразумевается по умолчанию
Re[129]: Immutable object
От: Sinclair Россия https://github.com/evilguest/
Дата: 19.01.12 14:57
Оценка: +1
Здравствуйте, DarkGray, Вы писали:

S>>Ок, вот мы задали некоторое отношение R в (X x N). Как нам из этого отношения получить последовательность?


DG>потребовать right-unique.

DG>также необходимо, чтобы отношение было полным справа на всем множестве Nat(для бесконечных последовательностей) или на интервале (1..L), если это конечная последовательность.
Ну вот видите, как сложно. В то время как классическое определение не нуждается во всех этих уточнениях. Вопрос: зачем так извращаться, когда можно просто взять готовое определение и пользоваться им?
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[130]: Immutable object
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 19.01.12 15:23
Оценка:
S>Ну вот видите, как сложно.

где сложные? вроде сплошные тривиальные выводы, которые элементарно восстанавливаются из контекста.

S> В то время как классическое определение не нуждается во всех этих уточнениях. Вопрос: зачем так извращаться, когда можно просто взять готовое определение и пользоваться им?


какое готовое? и как его использовать для моего утверждения, что если хочется записать сложную последовательность из всех элементов множества X в декларации программы, то:
лучше использовать F(X)->N (требование left-unique при этом автоматически подразумевается) для однозначных последовательностей (или F(X)->set<N> для последовательностей, где одни и те же элементы используются несколько раз) и использовать автоматическое восстановление F(N)->X из F(X)->N,
вместо того, чтобы задавать F(N)->X, а потом пытаться доказать, что эта функция полная справа.
Re[124]: Immutable object
От: samius Япония http://sams-tricks.blogspot.com
Дата: 19.01.12 15:24
Оценка:
Здравствуйте, DarkGray, Вы писали:

S>>И последовательность, определенная многозначным отображением есть последовательность подмножеств, которая записывается, например следующим образом:


DG>это странный вывод.

DG>многозначное отображение X->Nat есть обычное отображение, которое можно отразить и получить Nat->X (при этом если X->Nat было right-unique, то Nat->X будет left-unique), то это даст последовательность.
Читаем в определении:
Многозначным отображением из множества X в Y называется всякое отображение F : X -> 2^Y, где 2^Y — совокупность всех подмножеств множества Y.

Заменяем Y на Nat, получаем:
Многозначным отображением из множества X в Nat называется всякое отображение F : X -> 2^Nat, где 2^Nat — совокупность всех подмножеств множества Nat.

Область значений многозначного отображения является множество. Никакой мистики нет.
Т.е. если ты рассмотришь функцию X -> 2^Nat, то она будет отображать элементы множества на множества.

Т.е. взятое тобой ранее
F'(false) -> 0
F'(false) -> 1
F'(false) -> 2
F'(true) -> 3
F'(true) -> 4
F'(true) -> 5

должно будет выглядеть так:
F'(false) -> {0, 1, 2}
F'(true)  -> {3, 4, 5}


Так можно записывать последовательность? Да. Но такая запись не является достаточно хорошей что бы определить последовательность. Например, возьмем следующее многозначное отображение Bool->Nat:
F'(false) -> {0, 1, 2}
F'(true)  -> {2, 3, 4}

В нем ничего плохого нет. Но последовательность, построенная на таком отображении будет хромать на две ноги, т.к. на месте 2 должно быть два значения из Bool. Но все будет нормально, если определять последовательность подмножеств Bool.
{ {false}, {false}, {false, true}, {true}, {true}}


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

DG>Свойство, чтобы в Nat не было дырок желательно, но не является необходимым. Nat с "дырками" можно еще раз отобразить уже в Nat без "дырок".

Как сказано в определении, областью значений является множество всех подмножеств, а не само множество.

DG>с точки зрения математики здесь всё корректно, а вот с точки зрения реальных алгоритмов уже не всегда ("затягивание" дырок может выйти за допустимое кол-во шагов)

С точки зрения математики все некорректно.
Re[124]: Immutable object
От: samius Япония http://sams-tricks.blogspot.com
Дата: 19.01.12 15:36
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, samius, Вы писали:


S>В принципе, я вижу свет в конце тоннеля — если мы скажем, что бесконечной последовательностью является

S>

S>сюрьективное многозначное отображение произвольного множества элементов на множество натуральных чисел,

S>а конечной последовательностью —
S>

S>сюрьективное многозначное отображение произвольного множества элементов на множество индексов {i: i ∈ ℕ, i ≤ Length}

S>, то всё бы начало сходиться.
S>Но, во-первых, это определение сильно отличается от предложенного DG, а во-вторых, оно один хрен не совпадает с тем, чем пользуются все остальные люди.
Кажется я понял, свет действительно там проблескивает. Только больно сложно оперировать таким определением, если надстроить еще пару этажей (например начать обсуждать сходимость такой конструкции), то свет потухнет. Во всяком случае, давать такую хрень в первом семестре будет равноценно геноциду.
Re: Immutable object
От: freestyle  
Дата: 19.01.12 15:37
Оценка:
Здравствуйте, igna, Вы писали:

I>В статьях про "Immutable object" или про "Неизменяемый объект" в Википедии, во всех примерах речь идет о типах, все экземпляры которых неизменяемы, хотя согласно определениям данным в начале статей i в примере ниже является неизменяемым объектом:


I>
I>int const i = 123;
I>


I>Так ли это, можно ли назвать i здесь immutable?


Любой объект в программе который ты намеренно не будешь изменять — будет неизменяемым объектом!
Re[125]: Immutable object
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 19.01.12 15:41
Оценка:
S> Да. Но такая запись не является достаточно хорошей что бы определить последовательность.

согласен. и это есть хорошо , если происходить специфицирование в понимании двойственности: что то, что мы считаем хорошим, не всегда является хорошим на самом деле.
если специфицировать F(X)->N, то происходит несколько автоматических перепроверок корректности спецификации.
если специфицировать F(N)->X, то вся корректность держится на единственном доказательстве, что эта функция полная справа.
соответственно, первое задание более устойчивое — ряд ошибок автоматически выявляются на более поздних этапах, второе задание — неустойчивое, допущенная ошибка больше никогда не проявляется, и лишь скрыто пакостит.
Re[126]: Immutable object
От: samius Япония http://sams-tricks.blogspot.com
Дата: 19.01.12 15:46
Оценка:
Здравствуйте, DarkGray, Вы писали:


S>> Да. Но такая запись не является достаточно хорошей что бы определить последовательность.


DG>согласен. и это есть хорошо , если происходить специфицирование в понимании двойственности: что то, что мы считаем хорошим, не всегда является хорошим на самом деле.

DG>если специфицировать F(X)->N, то происходит несколько автоматических перепроверок корректности спецификации.
И добавляются новые ошибки, более критичные к возможности построения последовательности.

DG>если специфицировать F(N)->X, то вся корректность держится на единственном доказательстве, что эта функция полная справа.

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

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

Первое задание не всегда корректное. Второе — всегда.
Re[127]: Immutable object
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 19.01.12 16:04
Оценка:
DG>>соответственно, первое задание более устойчивое — ряд ошибок автоматически выявляются на более поздних этапах, второе задание — неустойчивое, допущенная ошибка больше никогда не проявляется, и лишь скрыто пакостит.
S>Первое задание не всегда корректное. Второе — всегда.

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