Re[76]: Но продолжим органометрию
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 09.06.09 14:35
Оценка: +1 :)
Здравствуйте, criosray, Вы писали:

C>Аппелировать к этому маразму? Ну давайте, удачи. Только, боюсь, что любой вменяемый программист Вас просто высмеит, если Вы покажете тот пост. Так что на Вашем месте я бы скромно попалкивал, а не орал на всю деревню: я только что обгадился!111аааа


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

Ладно, ладно, я тоже хорошо знаю, что 2x2=5 при очень больших значениях 2.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[66]: Ну ты вообще многого не видишь... ;)
От: Klapaucius  
Дата: 09.06.09 14:36
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>Если мы хотим иметь поиск по индексу, то нужно иметь дерево


Дерево, естественно, нужно. Но не обязательно 2-3.

S> Для имутабельного обязательно нужно балансированное дерево, т.к. при модификации строки, мы должны скопировать ветку от корня до узла с модифицированной строкой. Балансированное что бы доступ к узлу от корня был Log(N), в том числе и для закладок, содержащий путь до строкию


Если структура нужна нам в первую очередь для конкатенации — балансировать можно редко.
А так да, если у нас 2-3 дерево, то сложность конкатенации будет логарифмом от длинны меньшей строки.
Но непонятно, откуда Геннадий Васильев вывел необходимость или пересоздавать все узлы (это понадобится только если мы не балансировали дерево и всегда добавляли по дному блоку с одной и той же стороны и дерево выродилось в однонаправленный список) или перебирать все узлы при доступе по индексу.
... << RSDN@Home 1.2.0 alpha 4 rev. 1228>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[77]: Но продолжим органометрию
От: criosray  
Дата: 09.06.09 14:37
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Ладно, ладно, я тоже хорошо знаю, что 2x2=5 при очень больших значениях 2.


Тоже? А-а, Вы про Шеридана? Что ж, не удивляюсь. Вполне закономерный результат.
Re[58]: Ну ты вообще многого не видишь... ;)
От: Klapaucius  
Дата: 09.06.09 14:40
Оценка:
Здравствуйте, Геннадий Васильев,

Вы это
Автор: Klapaucius
Дата: 08.06.09
комментировать собираетесь? Если нужно, могу написать слово "парадигма" в качестве приманки.
... << RSDN@Home 1.2.0 alpha 4 rev. 1228>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[75]: Но продолжим органометрию
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 09.06.09 14:46
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

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


S>>Технология сравнительно молодая, но очень бурно развивающаяся. Как тут в одной ветке аж удивиль когда они нововведения вводить успевают. Все идет своим чередом. Правда для кого то медлено, а для кого то и очень быстро.


ГВ>Трудно сказать. Больше похоже на то, что отставание в производительности у C# будет всегда, если не прибегнуть к мерам типа прямой работы с памятью, от чего пытаются шугаться. Ну не бывает чудес, кроме алгоритмической оптимизации.


На данный момент нет особой оптимзации JIT ом, хотя какую то часть кода можно за счет суперкомпиляции в мсил код оптимизировать.
Вторая это NGen оптимизировать уже под процессор, если JIT этим заниматься не хочет.
S>>Главное вектор развития выбран верно. А С++ с C# будут ещё долго существовать вместе.

ГВ>"Верно" — это что означает?

Это развитие как манагед сред так и нативных, во многих случаях сближаясь. В многих случаях не нужна супер пупер скорость, нужны удобные средства разработки с минимальным затратами, с приемлемой скоростью работы. Поверь мне 1С ку.
Вот тут насчет веревок диспут шел, да эффективны,можно и другие структуры более эффективные создать, а будут пользоваться стрингбуилдером. Потому, что для большинства задач его хватает за глаза. Процессор в основном то простаивает.
и солнце б утром не вставало, когда бы не было меня
Re[59]: Ну ты вообще многого не видишь... ;)
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 09.06.09 14:47
Оценка:
Здравствуйте, Klapaucius, Вы писали:

K>Здравствуйте, Геннадий Васильев, Вы писали:


ГВ>>Вспомни, чем было спровоцировано моё непонимание. Здесь же все ходы записаны.

K>

ГВ>>>Если узлы хранят индексы элементов, и мы вставляем новый узел в начало, то дублировать придётся всё.
WH>>Какие индексы? Зачем все?

K>Как минимум, узлы должны хранить индекс начального элемента собственной подстроки. Могут, конечно, не хранить, но тогда поиск фрагментов очень не кисло усложнится.

K>Ну и чем может быть спровоцировано такое непонимание? Для добавления последовательности в начало нужно заменить 0 узлов. И создать 1 новый узел. Сложность O(1). При этом доступ по индексу будет с логарифмическим.

Обрати внимание на вот этот постинг
Автор: WolfHound
Дата: 04.06.09
:

ГВ>>Как минимум, узлы должны хранить индекс начального элемента собственной подстроки. Могут, конечно, не хранить, но тогда поиск фрагментов очень не кисло усложнится.
WH>Нет. Им достаточно хранить количество символов в собственной подстроке.


Про индексы элементов и длины я оговорился здесь
Автор: Геннадий Васильев
Дата: 04.06.09
:

ГВ>В прочем, тут есть более оптимальная структура — хранить в узле только длину фрагмента "слева". Так что, на счёт модификации всех элементов дерева при вставке в начало я погорячился (не внимательно прочёл Боэмовскую бумагу).


Я ж говорю, все ходы записаны. Только надо прочитать записанное.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[59]: Ну ты вообще многого не видишь... ;)
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 09.06.09 14:48
Оценка:
Здравствуйте, Klapaucius, Вы писали:

K>Вы это
Автор: Klapaucius
Дата: 08.06.09
комментировать собираетесь? Если нужно, могу написать слово "парадигма" в качестве приманки.


Откомментировал. Думал, что ты всё же перечитал дискуссию.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[67]: Ну ты вообще многого не видишь... ;)
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 09.06.09 14:52
Оценка:
Здравствуйте, Klapaucius, Вы писали:

K>Но непонятно, откуда Геннадий Васильев вывел необходимость или пересоздавать все узлы (это понадобится только если мы не балансировали дерево и всегда добавляли по дному блоку с одной и той же стороны и дерево выродилось в однонаправленный список) или перебирать все узлы при доступе по индексу.

Это нужно для имутабельной структуры. Ввыделяя новые узлы до модифицированного узла, му оставляем ссылку на "старое" дерево в старом корне, и ссылаясь на новый корень, представляющий собой ссылку на новое дерево, но имеющегл одинаковые ветки со старым. Классика функционального программирования.
и солнце б утром не вставало, когда бы не было меня
Re[60]: Ну ты вообще многого не видишь... ;)
От: Klapaucius  
Дата: 09.06.09 14:54
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Я ж говорю, все ходы записаны. Только надо прочитать записанное.


Ну так я читал все это — отсюда и ощущение сюрреальности. Ведь вы вроде как обнаружили свою ошибку, а потом спор продолжился.
Расскажите тогда, что вы понимаете под словами "длина собственной подстроки" — наверное все дело в этом.
... << RSDN@Home 1.2.0 alpha 4 rev. 1228>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[68]: Ну ты вообще многого не видишь... ;)
От: Klapaucius  
Дата: 09.06.09 14:56
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> Это нужно для имутабельной структуры. Ввыделяя новые узлы до модифицированного узла, му оставляем ссылку на "старое" дерево в старом корне, и ссылаясь на новый корень, представляющий собой ссылку на новое дерево, но имеющегл одинаковые ветки со старым. Классика функционального программирования.


Ну а я о чем? Узлы до модифицированного узла, а не все узлы дерева.
... << RSDN@Home 1.2.0 alpha 4 rev. 1228>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[69]: Ну ты вообще многого не видишь... ;)
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 09.06.09 14:59
Оценка:
Здравствуйте, Klapaucius, Вы писали:


K>Ну а я о чем? Узлы до модифицированного узла, а не все узлы дерева.

Все узлы от корня только в вырожденом случае (двухнаправленный список), чего быть не может в сбалансированом дереве.
и солнце б утром не вставало, когда бы не было меня
Re[61]: Ну ты вообще многого не видишь... ;)
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 09.06.09 15:02
Оценка:
Здравствуйте, Klapaucius, Вы писали:

K>Ну так я читал все это — отсюда и ощущение сюрреальности. Ведь вы вроде как обнаружили свою ошибку, а потом спор продолжился.

K>Расскажите тогда, что вы понимаете под словами "длина собственной подстроки" — наверное все дело в этом.

А что можно под этим понимать? Это длина только той строки, которая отнесена непосредственно к узлу. Не сумма длин строк, хранящихся в дочерних узлах, плюс собственная строка, а только та, которая сопоставлена с самим узлом.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[70]: Ну ты вообще многого не видишь... ;)
От: Klapaucius  
Дата: 09.06.09 15:02
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>Все узлы от корня только в вырожденом случае (двухнаправленный список), чего быть не может в сбалансированом дереве.


Именно это я и написал. Только список однонаправленный, а не двунаправленный.
... << RSDN@Home 1.2.0 alpha 4 rev. 1228>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[62]: Ну ты вообще многого не видишь... ;)
От: Klapaucius  
Дата: 09.06.09 15:10
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>А что можно под этим понимать?


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

ГВ>Это длина только той строки, которая отнесена непосредственно к узлу. Не сумма длин строк, хранящихся в дочерних узлах, плюс собственная строка, а только та, которая сопоставлена с самим узлом.


А. Вы имеете в виду длину линейного буфера в листе. Но буфер не сопоставлен с узлом, да и строка в контексте обсуждения — это дерево. Ну а подстрока — поддерево. Строка это абстракция, а дерево реализация.
... << RSDN@Home 1.2.0 alpha 4 rev. 1228>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[63]: Ну ты вообще многого не видишь... ;)
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 09.06.09 15:19
Оценка:
Здравствуйте, Klapaucius, Вы писали:

ГВ>>А что можно под этим понимать?

K>Ну я выше написал что я под этим понял.

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

ГВ>>Это длина только той строки, которая отнесена непосредственно к узлу. Не сумма длин строк, хранящихся в дочерних узлах, плюс собственная строка, а только та, которая сопоставлена с самим узлом.


K>А. Вы имеете в виду длину линейного буфера в листе.


Нет-нет. Если считать, что с каждым узлом дерева сопоставлен некий фрагмент общей строки, то "собственная подстрока" — это только тот фрагмент, который сопоставлен с этим узлом. Буферы тут не при чём.

K>Но буфер не сопоставлен с узлом, да и строка в контексте обсуждения — это дерево. Ну а подстрока — поддерево. Строка это абстракция, а дерево реализация.


То есть каждому символу строки сопоставляется отдельный узел дерева?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[64]: Ну ты вообще многого не видишь... ;)
От: Klapaucius  
Дата: 09.06.09 15:32
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

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


Семантики заявили, что все зависит от того, как понимать слова
"картофель", "может" и "двигаться". Так как ключом является модальный
глагол "мочь", то его надлежит тщательно исследовать. Затем они
приступили к созданию Энциклопедии Космической Семасиологии, первые
четыре тома которой посвящались модальным значениям глагола "мочь".


K>>А. Вы имеете в виду длину линейного буфера в листе.

ГВ>Нет-нет. Если считать, что с каждым узлом дерева сопоставлен некий фрагмент общей строки, то "собственная подстрока" — это только тот фрагмент, который сопоставлен с этим узлом. Буферы тут не при чём.

Узел, он на то и узел, что с ним сопоставлено N подстрок. Так вот, для бинарного дерева достаточно хранить длину левой подстроки. Если вы ее называете собственной подстрокой — тогда мы понимаем под этими словами одно и то же.

ГВ>То есть каждому символу строки сопоставляется отдельный узел дерева?


Сиволы и группы символов — это не узлы, а листья.
... << RSDN@Home 1.2.0 alpha 4 rev. 1228>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[65]: Ну ты вообще многого не видишь... ;)
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 09.06.09 15:40
Оценка:
Здравствуйте, Klapaucius, Вы писали:

K>>>А. Вы имеете в виду длину линейного буфера в листе.

ГВ>>Нет-нет. Если считать, что с каждым узлом дерева сопоставлен некий фрагмент общей строки, то "собственная подстрока" — это только тот фрагмент, который сопоставлен с этим узлом. Буферы тут не при чём.
K>Узел, он на то и узел, что с ним сопоставлено N подстрок. Так вот, для бинарного дерева достаточно хранить длину левой подстроки. Если вы ее называете собственной подстрокой — тогда мы понимаем под этими словами одно и то же.

Ни в коем случае я этого так не понимаю. Собственная — это собственная. "Слева" — это "слева". Хорош уже передёргивать — если под белым понимать синее, а под синим оранжевое, то и радуги нет.

ГВ>>То есть каждому символу строки сопоставляется отдельный узел дерева?

K>Сиволы и группы символов — это не узлы, а листья.

Тоже вариант, не спорю.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[76]: Но продолжим органометрию
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 09.06.09 15:46
Оценка: +1 -1
Здравствуйте, Serginio1, Вы писали:

ГВ>>Трудно сказать. Больше похоже на то, что отставание в производительности у C# будет всегда, если не прибегнуть к мерам типа прямой работы с памятью, от чего пытаются шугаться. Ну не бывает чудес, кроме алгоритмической оптимизации.


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

S>Вторая это NGen оптимизировать уже под процессор, если JIT этим заниматься не хочет.

Так я-то всё это понимаю. Но ты ж послушай наших боевых анти-C++-ников. .Net разве что курицу не жарит за программиста.

S>>>Главное вектор развития выбран верно. А С++ с C# будут ещё долго существовать вместе.


ГВ>>"Верно" — это что означает?

S> Это развитие как манагед сред так и нативных, во многих случаях сближаясь. В многих случаях не нужна супер пупер скорость, нужны удобные средства разработки с минимальным затратами, с приемлемой скоростью работы. Поверь мне 1С ку.

Да нет, это всё понятно. Хотя мне кажется, что .Net развивается немного ради других целей. Ну там, у Java кусок отгрызть, индусов привлечь и т.п. Прагматично и объяснимо. Но это "кажется" супротив "кажется" — ни к чему не придём.

S> Вот тут насчет веревок диспут шел, да эффективны,можно и другие структуры более эффективные создать, а будут пользоваться стрингбуилдером. Потому, что для большинства задач его хватает за глаза. Процессор в основном то простаивает.


Вот в том-то и дело, что если процессор простаивает, то без разницы. Но он-то не всегда занят на 5%. Есть и другие задачи, которые не предполагают, что у нас всегда имеется 20-кратный запас производительности. Тут, понимаешь, прикол в другом, в том, что если следовать апологетам... Короче говоря, всё и так понятно.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[66]: Ну ты вообще многого не видишь... ;)
От: Klapaucius  
Дата: 09.06.09 15:57
Оценка: 6 (2)
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Ни в коем случае я этого так не понимаю. Собственная — это собственная. "Слева" — это "слева". Хорош уже передёргивать — если под белым понимать синее, а под синим оранжевое, то и радуги нет.


Ну в каком она еще смысле может быть собственной, при том, что собственные строки есть у всех узлов?

... << RSDN@Home 1.2.0 alpha 4 rev. 1228>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[67]: Ну ты вообще многого не видишь... ;)
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 09.06.09 16:05
Оценка:
Здравствуйте, Klapaucius, Вы писали:

ГВ>>Ни в коем случае я этого так не понимаю. Собственная — это собственная. "Слева" — это "слева". Хорош уже передёргивать — если под белым понимать синее, а под синим оранжевое, то и радуги нет.

K>Ну в каком она еще смысле может быть собственной, при том, что собственные строки есть у всех узлов?

[skip the nice picture]

Собственной она может быть только в прямом смысле, то есть принадлежащей только одному узлу, а не как собирательный термин для обозначения всех подстрок его потомков.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.