LINUX.ORG.RU
ФорумTalks

Проблемы с пониманием математической нотации


0

2

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

Способы задания множеств: A = {a, b, c, d} - задание множества явным перечислением элементов.

Например, гвардия = {Иванов, Петров, Сидоров}

B = {x | С(x)} - задание множества (характеристическим) свойством С(x).

Например, студенчество = {x | x - студент} - множество таких х, что х - студент.

И впадаю в ступор конкретно от этого:

B = {x | С(x)}

Если скобочки есть, значит, это функция? А функция — это некий объект, который ставит в соответствие объекты входного множества выходному множеству. Вот какие объекты тут тогда связываются? Что эта запись буквально значит? Я в ступоре. Вообще всегда были проблемы с математическое нотацией. Никогда её не понимал. Вот как «на пальцах» что-то объясняется (ну, или программным кодом), то всё понятно. А вот как эти знаки древних цивилизаций — ничерта не понятно, что хотели сказать. Может, что почитать посоветуете?

★★★★★

Или вот лежит ещё купленная когда-то книжка «Последовательные и параллельные алгоритмы» Р. Миллера и Л. Боксера. Книжка хорошая, вроде, но вот из-за обильного использования математической нотации не идёт. Не читается. А прочитать бы хотелось.

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

The notation with braces may also be used in an intensional specification of a set. In this usage, the braces have the meaning «the set of all ...». So, E = {playing card suits} is the set whose four members are ♠, ♦, ♥, and ♣. A more general form of this is set-builder notation, through which, for instance, the set F of the twenty smallest integers that are four less than perfect squares can be denoted:

F = {n2 − 4 : n is an integer; and 0 ≤ n ≤ 19}.

In this notation, the colon (":") means «such that», and the description can be interpreted as «F is the set of all numbers of the form n2 − 4, such that n is a whole number in the range from 0 to 19 inclusive.» Sometimes the vertical bar («|») is used instead of the colon.

Это ответ, но голова сейчас не варит

frozenix ★★★
()

B = {x | С(x)}

студенчество = {x | isStudent(x)}

bool isStudent(x) {
...
}

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

In this notation, the colon (":") means «such that»

Это понятно, спасибо. Но почему C(x)? Что это за некая функция? Вот это в голове не укладывается.

Wizard_ ★★★★★
() автор топика

В данном случае C(x) - это предикат, грубо говоря, функция, возвращающая bool.

Рассматривай эту запись как SELECT x FROM ... WHERE C(x) = TRUE

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

static_lab ★★★★★
()

Математическая нотация — язык годный, но, к сожалению, в большинстве более-менее сложных случаев write-only.

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

buddhist ★★★★★
()

Почитай теорию множеств Вавилова. Не то, чтобы это относится к вопросам из темы, просто замечательная книжка.

kike
()

B = {x | С(x)}

Читай так: B = B это {} множество x | x таких, что для них выполняется С(x)

unC0Rr ★★★★★
()
Последнее исправление: unC0Rr (всего исправлений: 1)

Если скобочки есть, значит, это функция?

это не функция, а СВОЙСТВО. в сишечке это близко к ТИПУ

int B[] = {1,2,3}; /* массив целых */
drBatty ★★
()

B = {x | С(x)}

Если я правильно понимаю, то, в функциональных ЯП это аналогично функции B, которая возвращает истину только для тех элементов, которые удовлетворяют функции C:

def C(x)
  x % 2 == 0
end
b = lambda { |x| C(x) }
b.call(2) # => true 
b.call(3) # => false 
b.call(1235) # => false 
b.call(1236) # => true 
drakmail ★★★★
()
Ответ на: комментарий от static_lab

SELECT x FROM ... WHERE C(x) = TRUE

= TRUE кстати можно опустить и получается совсем хорошо, SELECT x FROM ... WHERE C(x) где C(x) - логическая функция.

Множесто кстати часто указывается до палки (двоеточия), типа A = {x∈R: x>0} SELECT x FROM R where x>0;

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

= TRUE кстати можно опустить

Да, я эту часть оставил именно для наглядности, что C(x) возвращает именно булевое значение.

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