Что-то гложуть меня сомнения...
Такое впечатление, что x = {x} для физически существующих (т.е. допускающих регистрацию физич. приборами) множеств... если вдуматься. Для формальных (хоть аксиоматических, хоть наивных) множеств это, конечно, не так. А вот для физически существующих вещей, с которыми мы в рассуждениях оперируем как со множествами, найти разницу между x и {x} не удается. Каждый раз, когда мне кажется, что я ее нашел, дальнейшее размышление вынуждает признать, что что-нибудь не так.
Или меня глючит к ночи... ?
Или меня глючит к ночи... ?
no subject
no subject
M = "множество юзверей жж с ником xlein"
M содержит единственный элемент... xlein т.е. тебя.
Найдите 10 отличий между физическими объектами: xlein и M...
no subject
no subject
no subject
no subject
no subject
no subject
int a = 3; // x
int b[1]; b[0] = a; // {x}
Разницы между ними, как очевидно, много, а выражается она в наборе допустимых операций :)
Вопрос, конечно, насколько "физичны" эти объекты... Вообще, разрешение большинства подобных вопросов таится в "складках" наших бытовых представлений о мире.
Кстати, как-то я пытался объяснить разницу между "элементом" и "массивом из одного элемента" одной весьма неглупой девушке-гуманитарию. Поскольку ни в одном известном ей языке, в отличие от C++, никакой грамматической разницы между этими понятиями нет, она действительно испытывала большие трудности в ухватывании идеи.
no subject
Набор допустимых операций в данном случае определяется сугубо нефизическими соглашениями языка. Ведь на практике ничто не мешает работать с массивом из 1 int-а как с 1 int-ом и наоборот, считать отдельный 1 int единичным массивом. Физически это будет в обоих случаях 4 байта в памяти в дополнительной двоичной кодировке.
no subject
no subject
Но мне тут другую интересную идею в ru_math подкинули... надо обмозговать, расскажу, если что-нибудь внятное получится сформулировать.
no subject
no subject
static int x[1];
static int x;
- так и так надо 4 байта...
нет, ну какой-нибудь компилятор может, конечно, поизвращаться, но в принципе то надо 4 байта в обоих случаях...
no subject
no subject
static char *x="123";
- то 8 байт: под указатель x и под 4 байта строки '1','2','3','\0'.
а если так:
static char x[]="123";
- то под указатель место не отводится. В 1-м случае x можно изменить (например, x = NULL), и тогда новый измененный адрес надо будет куда-то записать (нужны 4 байта). А во втором случае компилятор запретит такое присваивание, т.к. x - константа.
no subject
Занятно, что если подобные объекты аллоцировать динамически, то int x[1] оказывается-таки на 4 байта длиннее int x[0], и при этом int x[0] места занимает всё ещё порядочно... Но статически такой объект не создаётся :)
no subject
static int x[1] = 77;
no subject
no subject
no subject
Но здесь можно уточнить. :)
Если рассматривать множество точек и множество одноточечных множеств, то они будут равномощны в силу вышесказанной биекции. Но если ввести на этих двух множествах структуру, то уже изоморфизма может и не быть.
no subject
no subject
no subject
no subject
no subject
Тогда
{2,3,4}={{2,3,4}} является подмножетвом множества {{2,3,4},{4,5,6}}
Полуцахется: множество из 3 элементов - подмножество множества из 2 элементов.
Что неудобно.
no subject
no subject