.
Отредактировано Шарпер (2021-12-04 22:51:04)
Амальгама |
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » Амальгама » Reductor Sapiens » Новая теория памяти – прорыв или утопия? #2
.
Отредактировано Шарпер (2021-12-04 22:51:04)
А лргарифм при потере точности коллизий не выдаст?
А я откуда знаю...
Проверять надо
Так невозможно длинные числа использовать непосредственно в стандартном компьютере. Поэтому требуется вторичное преобразование.
Я не понял, ты уже отказался от своей формулы? Или она правильная, но к ней нужна еще одна формула для вторичного преобразования? Если так, то что из себя представляет вторая формула?
Лукомор вон логарифм пытается взять...
Ну я тоже брал логарифм по основанию 2, чтобы вручную не считать количество двоичных символов в слове "шарпер". И ведь не просто попытался, а взял, между прочим.
20 бит достаточно для миллиона - количество реально используемых слов взятое с 3*кратным запасом.
По твоей формуле уже 33^4 больше миллиона, так что 20 бит хватит только для записи уникального кодового номера слова не длиннее 3 букв. Заметь, не всех 3-буквенных слов, а только одного. Ну в принципе, понятно что это слово *срабатывание гусар-контроля*
И слово "шарпер" никак в 20 бит не влезет.
Выигрыш там за счет параллелизма есть, но суть не в нем, а в уменьшении объема данных на порядки за счет исключения дубликатов
Каких еще дубликатов? Уникальных слов будет строго равное количество хоть в символьном виде, хоть в виде десятичного кода, хоть в двоичке. Символьное перекодирование никак не влияет на число уникальных слов. Точнее даже так: если в результате перекодирования число уникальных слов уменьшается, то это является прямым признаком коллизий, то есть некорректной работы алгоритма перекодировки.
Ну, в принципе, Лукомор эту проблему уже описал. Можно свести все слова к однобитной записи, так что слов в словаре окажется столько же, сколько и букв в алфавите, то есть два. Это существенная экономия памяти, да. Теряюсь в догадках - почему никто этот алгоритм для поиска не использует до сих пор?
А лргарифм при потере точности коллизий не выдаст?
Ой, ну будет у тебя ник не Шарпер, а Шарпец, делов то.
Я не понял, ты уже отказался от своей формулы? Или она правильная, но к ней нужна еще одна формула для вторичного преобразования? Если так, то что из себя представляет вторая формула?
Я в свою очередь не понимаю Ваши вопросы
1 Что моего в формуле?
2 Что Вас смущает в дополнительном преобразовании сверхдлинных чисел выходящих за разрядность адреса?
3 Каким образом дополнительное преобразование вычислением или табличным способом может влиять на верность/неверность первичного?
По твоей формуле уже 33^4 больше миллиона
И что?
20 бит хватит только для записи уникального кодового номера слова не длиннее 3 букв.
Какая связь номера комбинации заданной словом с номером комбинации из списка применяемых? Возможное количество телефонных номеров заведомо больше количества действующих и это совершенно разные значения. 20 бит на количество действующих
Каких еще дубликатов? Уникальных слов будет строго равное количество хоть в символьном виде, хоть в виде десятичного кода, хоть в двоичке. Символьное перекодирование никак не влияет на число уникальных слов. Точнее даже так: если в результате перекодирования число уникальных слов уменьшается, то это является прямым признаком коллизий, то есть некорректной работы алгоритма перекодировки.
Я типа должен поверить, что десятикратного объяснения с цитированием Trie недостаточно для понимания? При чем здесь вообще какое-либо кодирование, если речь о фильтрации совпадающих последовательностей из=за чего собственно весь сыр-бор! Ну многократно же приводил пример, что фамилия однофамильцев будет представлена ровно один раз.
лргарифм при потере точности коллизий не выдаст?
Логарифм не выдаст, свинья не съест.
Логарифм не выдаст, свинья не съест.
Можно еще так:
Экспонента не выдаст - логарифм не съест!
что фамилия однофамильцев будет представлена ровно один раз.
"Иван Иваныч Иванов с утра ходит без штанов, а Иванов Иван Иваныч одевет штаны на ночь"
Как здесь избежать поворения фамилии "Иванов", имени "Иван", отчества "Иваныч"?
И повторения корня слова "штан"?
Отредактировано Лукомор (2022-01-25 08:10:08)
Как здесь избежать поворения фамилии "Иванов", имени "Иван", отчества "Иваныч"?
И повторения корня слова "штан"?
Элементароно, Ватсон! Ровно так же как ты их различаешь сейчас - по действию со штанами в зависимости от времени суток, а ФИО будет общим
1 Что моего в формуле?
Без понятия. Вопрос мой простой: мы по прежнему обсуждаем формулу КС+33*(ПС+33*(ПС+(33*НС))) или уже что-то другое?
2 Что Вас смущает в дополнительном преобразовании сверхдлинных чисел выходящих за разрядность адреса?
Пока что смущает только то, что это преобразование не было описано.
И что?
И то, что в 20 бит нельзя записать числовой код для одного слова длиннее 3 букв.
Какая связь номера комбинации заданной словом с номером комбинации из списка применяемых?
Я правильно понимаю, что ник "Шарпер" записывается не как символьная последовательность "Шарпер" и не как числовой код 1019371734, а в виде номера слова? Ну, например, если смотреть на список участников форума, то номер 3.
Если да, то еще раз спрашиваю - что мешает присвоить этот номер самому слову "Шарпер" без преобразования в числовой код?
Возможное количество телефонных номеров заведомо больше количества действующих и это совершенно разные значения
Щас! Ты как будто никогда не жил в СССР и никогда не слышал от АТС сообщения о том, что домашний телефон тебе нельзя установить, потому что нет свободных номеров.
Ну многократно же приводил пример, что фамилия однофамильцев будет представлена ровно один раз.
Ты о чем вообще? Я пишу про уникальные слова, то есть как раз про то, что остаётся после фильтрации дубликатов.
Как здесь избежать поворения фамилии "Иванов", имени "Иван", отчества "Иваныч"?
Проходили с таблицами. Это можно, но смысла нет. Там за исключение дубликатов приходится платить резервированием памяти для информации о ветвлениях после каждой буквы. Фиаско с табличной реализацией этой опции сам Шарпер признал.
Наверное, можно это как-то не через таблицу, а через формулу Шарпера делать, но я пока что не понял как.
И повторения корня слова "штан"?
А вот с этим вообще облом. Табличная реализация алгоритма позволяла фильтровать однокоренные дубликаты, только если они начинаются с букв "штан". В слове "подштанники" этот корень не был бы найден. Хотя можно было бы сэкономить до хрена места при записи слов штандартенфюрер, штангенциркуль и штангистка.
а ФИО будет общим
То-есть, выражения
"Иван Иваныч Иванов",
и
"Иванов Иван Иваныч"
Прочертят одинаковый маршрут в Trie,
а, будучи подставлены в формулу, дадут одно и то же число?
Я все правильно понимаю?
Или, укажи конкретно, какая часть одного и другого выражения будут общей для обоих выражений?
Без понятия. Вопрос мой простой: мы по прежнему обсуждаем формулу КС+33*(ПС+33*(ПС+(33*НС))) или уже что-то другое?
Мы обсуждаем варианты использования сверхдлинных результатов полученных по этой формуле. По крайней мере я пытаюсь обсуждать.
Пока что смущает только то, что это преобразование не было описано.
Как это не было описано? Было и даже с вариантами. Начиная с простого перечисления закодированных словоформ вычислением или таблично. Лукомор предлложил вычислять Log2 Кстати перечислять словоформы непосредственно в символьном виде замучаешься пыль глотать отлавливая дубликаты сравнением.
И то, что в 20 бит нельзя записать числовой код для одного слова длиннее 3 букв.
Я не понимаю о чем Вы. Количество используемых кодов не больше 1 000 000. Я не знаю как еще объяснить тривиальный факт, что телефонный номер может быть на порядки больше количества телефонов на руках абонентов. Ну вот любой номер вида +7 965 ххх хх хх намного больше количества жителей нашего города. В чем проблемы-то пересчитать их[ с нуля?
Я правильно понимаю, что ник "Шарпер" записывается не как символьная последовательность "Шарпер" и не как числовой код 1019371734, а в виде номера слова? Ну, например, если смотреть на список участников форума, то номер 3.
Как вариант, да. Но логарифм Лукомора мне нравится больше
Если да, то еще раз спрашиваю - что мешает присвоить этот номер самому слову "Шарпер" без преобразования в числовой код?
Сложности отлова дубликатов символьным сравнением вновь вводимой словоформы со списком ранее запомненных, которое надо делать каждый раз. Кодировка на порядки уменьшает сложность этой фильтрации даже, если придется просматривать миллион значений. А если получится с лукоморовскими логарифмами, то и этого не потребуется
Щас! Ты как будто никогда не жил в СССР и никогда не слышал от АТС сообщения о том, что домашний телефон тебе нельзя установить, потому что нет свободных номеро
Зарезервированные просто предназначались организациям и это ария из другой оперы под названием "экономная экономика", поскольку технические проблемы были решены уже в 60-х
Ты о чем вообще? Я пишу про уникальные слова, то есть как раз про то, что остаётся после фильтрации дубликатов.
А я и о самой фильтрации, которая есть проблема для символьного вида. Только я изначально считал, что всем эта проблема очевидна, а оказалось,что нет. Ну предмтавьте, что Вам надо из "Войны и мира" перечислить только уникальные слова - это ж надо все много раз побайтно перелопатить. И, кстати, всегда впоследствии проверять каждое вводимое слово на уникальность, опять перелопачивая все ранее запомненные. А с кодами все отсекается на раз
Или, укажи конкретно, какая часть одного и другого выражения будут общей для обоих выражений?
Мы вроде договаривались, что фраз пока не касаемся, а обсуждаем справочник, типа телефонного. К фразам попозже перейдем
Фиаско с табличной реализацией этой опции сам Шарпер признал.
Хрен там! Я просто нашел вариант с вычислением
Наверное, можно это как-то не через таблицу, а через формулу Шарпера делать, но я пока что не понял как.
Так никакой же разницы нет - промежуточное значение хоть табличное, хоть вычисленное вполне однозначно определяет коминацию
Табличная реализация алгоритма позволяла фильтровать однокоренные дубликаты, только если они начинаются с букв "штан". В слове "подштанники" этот корень не был бы найден.
Вы же сами запретили дробить слова на составляющие. Впрочем и сейчас не поздно. Что же касается табличного способа, он не отличается от вычислительного, просто "штан" становится самостоятельной единицей со своим кодом.
фраз пока не касаемся, а обсуждаем справочник
Ну и как в телефонном справочнике обойтись без повторения дубликатов?
Ну и как в телефонном справочнике обойтись без повторения дубликатов?
Легко и вдобавок традиционно (для словарей)
Иванов Иван Иванович
- ходит утром без штанов
- надевает штаны на ночь
Как это не было описано? Было и даже с вариантами
Давай без болтовни. Вот есть просто длинный код 1019371734. Как его преобразовать без потери точности в более короткий вид, чтобы на его хранение ушло меньше места? Логарифмы не канают - там чтобы не потерять точность и избежать коллизий, значащих цифр точно не меньше надо хранить.
Я не понимаю о чем Вы. Количество используемых кодов не больше 1 000 000
Чего непонятного то? Для хранения десятичного числового кода слова "шарпер" в двоичном виде нужно 30 битов. В 20 оно никак не влезет.
Кодировка на порядки уменьшает сложность этой фильтрации
А это из чего следует? В символьной кодировке слова "шарпер" процессор делает 6 операций по сравнению символов, в двоичном виде ему нужно будет сделать 30 операций по сравнению битов. Пусть даже биты идут побайтно, по 8 штук, тогда будет около 4 операций, но сюда еще плюсуем операции на кодирование. Я пока что вообще никакого уменьшения сложности не вижу, не говоря уж о порядках.
Зарезервированные просто предназначались организациям и это ария из другой оперы под названием "экономная экономика", поскольку технические проблемы были решены уже в 60-х
Не рассказывайте сказки. Мне в 1990-е под этим предлогом не ставили телефон.
Ну предмтавьте, что Вам надо из "Войны и мира" перечислить только уникальные слова - это ж надо все много раз побайтно перелопатить. И, кстати, всегда впоследствии проверять каждое вводимое слово на уникальность, опять перелопачивая все ранее запомненные.
Это какая-то очень частная постановка задачи поиска. Для работы с текстом "Войны и мира" всё равно нужно хранить весь текст целиком. А считать уникальные слова... а зачем вообще?
Хрен там! Я просто нашел вариант с вычислением
Не от хорошей жизни нашел, прямо скажем, а только осознав проблемы с ветвлением в таблице.
Вы же сами запретили дробить слова на составляющие. Впрочем и сейчас не поздно. Что же касается табличного способа, он не отличается от вычислительного, просто "штан" становится самостоятельной единицей со своим кодом.
Да ничего подобного. Твой табличный метод может начинать цепочку только от первой буквы слова, другие варианты в нем не могут быть реализованы. Если ты сначала закинешь в таблицу слово "штаны", а потом слово "штанина", то да, последовательность "штан" будет отфильтрована. Но на слово "подштанники" ничего отфильтровано не будет, потому что там первая буква не "ш", а "п" и это будет другая совсем другая последовательность.
Иванов Иван Иванович
- ходит утром без штанов
- надевает штаны на ночь
А Иван Иваныч Иванов как же?
Давай без болтовни. Вот есть просто длинный код 1019371734. Как его преобразовать без потери точности в более короткий вид, чтобы на его хранение ушло меньше места?
Пересчитать с первого. Как еще это объяснить я не представляю.
Логарифмы не канают - там чтобы не потерять точность и избежать коллизий, значащих цифр точно не меньше надо хранить.
Я это сейчас проверяю и пока все получается
Чего непонятного то? Для хранения десятичного числового кода слова "шарпер" в двоичном виде нужно 30 битов. В 20 оно никак не влезет.
Я начинаю подозревать, что Вы просто издеваетесь. Вот задачка - перенумеруйте числа по величине 7905, 756845, 634563, 33.
В символьной кодировке слова "шарпер" процессор делает 6 операций по сравнению символов, в двоичном виде ему нужно будет сделать 30 операций по сравнению битов
Вы не то считаете, тем более что и неверно. Операции с числами производятся параллельно с машинным словом 32, а то и 64 бит сразу, а не побвйтно, но это чисто к слову, поскольку главное не в этом, а в том, что проверять придется каждый раз сравнением посимвольно по всем ранее введенным данным. А с кодированные данные фильтруются на лету
Не рассказывайте сказки. Мне в 1990-е под этим предлогом не ставили телефон.
А в мэрии ставили без проблем, как ранее в Горсовете
Это какая-то очень частная постановка задачи поиска. Для работы с текстом "Войны и мира" всё равно нужно хранить весь текст целиком. А считать уникальные слова... а зачем вообще?
Это стандартный пример на сортировку с фильтрацией дубликатов. Причем предлагаемым способом эта сортировка осуществляется в процессе ввода, а не на полном тексте.
Не от хорошей жизни нашел, прямо скажем, а только осознав проблемы с ветвлением в таблице.
Ничего подобного. Я вспоминал как мы учитывали ветвления в двоичной табличке и наткнулся на формулу.
Твой табличный метод может начинать цепочку только от первой буквы слова, другие варианты в нем не могут быть реализован
Ага. А вот этого разговора типа не было?
А можно еще сыграть на понижение и перечислить приставки, корни, суффиксы. Корней вон всего 400.
То есть ты предлагаешь к поисковику прикрутить вордовский спелчекер со словарями и блоком анализа текстов? Охренеть быстрый и эффективный поиск будет, ага
перенумеруйте числа по величине 7905, 756845, 634563, 33.
2, 4, 3, 1?
А Иван Иваныч Иванов как же?
Извини, но справочники предопределяют единый порядок следования ключей.
2, 4, 3, 1?
Отредактировано Шарпер (2022-01-25 16:32:07)
Извини, но справочники предопределяют единый порядок следования ключей.
Ага.
У Иванова Ивана Иваныча штук пятьдесят номеров телефонов в справочнике.
Звони по любому - не ошибешься!
2, 4, 3, 1?
Теперь добавляем в список чмсло 9191.
Его номер будет 2,5
Пересчитать с первого. Как еще это объяснить я не представляю.
Если бы понимал как это сделать, то объяснил бы без проблем.
Я это сейчас проверяю и пока все получается
А чего там проверять?
Логарифм десятичного кода 1019371734 по основанию 2 равен 29,925033109. В первом случае 10 значащих цифр, во втором 11.
Можно эти 11 сократить до 10? Да легко! Логарифм округляется до 29,92503311 и на выходе получаем десятичный код 1019371735, то есть слово "шарпес" вместо "шарпер".
Но нам же много 10 значащих цифр. Нам же надо меньше, чем в десятичной записи. Давайте сделаем 9. Получаем 29,9250331 -> 1019371728 -> "шарпек". Жаль, что одной циферки не хватило, а так бы вообще "шарпей" получилось бы.
Итого, имеем, что логарифмирование пожалуй что увеличивает объем хранения, а не уменьшает. Плюс добавляет риск возникновения ошибки при обратной перекодировке.
Вот задачка - перенумеруйте числа по величине 7905, 756845, 634563, 33.
Ну, Лукомор уже справился. И что? Предлагается хранить в 20 битах не сами числа, а их порядковые номера? А сами числа и информацию по их связи с порядковыми номерами нужно хранить или номеров хватит?
А с кодированные данные фильтруются на лету
Мне не ясен смысл этой фразы, "пахнущий духами и туманами". Я бы предпочел посмотреть на внятно описанный алгоритм этой фильтрации.
Ага. А вот этого разговора типа не было?
Это был разговор ни о чем. Суровая правда заключается в том, что твой табличный метод предназначен только для записи произвольных символьных последовательностей, там в принципе нет понятия корней и и суффиксов.
Ну вот к примеру. В словаре записаны слова "шарпер", "докторлектор", "штаны" и "подвох".
Начинаем заводить туда слово "подштанники".
Первая буква "п", отлично, есть в словаре такая буква, при ней стоит ссылка, что возможен переход на букву "о". Супер! Переходим туда, а там есть возможный переход на букву "д". И казалось, что счастье уже близко, но для "д" не прописан переход на букву "ш".
Но мы не привыкли отступать! (тм). Заводим в таблице новую строчку и пишем туда "ш", а также все прочие буквы, не забывая около предыдущей "д" поставить знак развилки и возможность перехода не только на "в", но теперь и на "ш". И да, мы сэкономили аж три строчки на исключении дублирования букв "под". Прекрасно!
Ну почти. Есть одна проблемка. Таблица не заметила общих букв "штан". Про то, что это корень, не будем таблице говорить, она не знает что такое корень и может обидеться, решив, что мы ее держим за дуру. Так что просто буквы. Она их не заметила, потому что и не могла заметить.
Теперь вся надежда на формулу. Берем слова "шарпер" и "шарпе" (можно взять "штаны" и "подштанники", конечно, но честно - лень считать, итог то тот же). Этим словам соответствуют десятичные коды по формуле Шарпера 1019371734 и 30890052 соответственно. Вот глядя на буквы, я даже без таблицы и метода Trie догадываюсь, что можно отфильтровать дублирование фрагмента "шарпе". А вот глядя на цифры, мне даже в голову не приходит, что там есть какое-то дублирование, там вроде ни одной общей пары цифр нету даже.
Ах да, я же забыл, там же логарифмы. Ну ок, для логарифмов по основанию 2 имеем 29,925033109 и 24,880638964. Тоже не очень с фильтрацией дублирований.
Ок, перенумеруем по величине. Получаем 2 и 1. Фильтрация дублей опять идет не так хорошо, как хотелось бы.
А теперь применим последний животворящий приём и поговорим про идентификацию корней, приставок и суффиксов в числе 1019371734. Ну или про идентификацию корней, приставок и суффиксов в слове номер 2, на твой выбор.
Весь - внимание!
Отредактировано Zagar (2022-01-25 20:26:58)
Теперь добавляем в список чмсло 9191.
Его номер будет 2,5
Может его тоже того, прологарифмировать?
Может его тоже того, прологарифмировать?
Ага. Попались оба! Отлично! Вот причина ваших непоняток - вы любой иллюстративный пример считаете полным раскрытием принципа действия, хотя он предназначен для иллюстрации совершенно иного! Вы с чего решили, что упорядочивание по возрастанию касается нашего способа? Оно выбрано как более иллюстративное по сравнению с перечислением по порядку поступления
вы любой иллюстративный пример считаете полным раскрытием принципа действия
Но это второй топик, страница 43. Уже можно.
Если бы понимал как это сделать, то объяснил бы без проблем.
Ну значит я не способен объяснить азы счета загибанием пальцев
Логарифм округляется до 29,92503311 и на выходе получаем десятичный код 1019371735,
Стесняюсь спросить, а в чем смысл этого действа? Зачем восстанавливать исходное значение? Чтобы что?
Ну, Лукомор уже справился. И что? Предлагается хранить в 20 битах не сами числа, а их порядковые номера? А сами числа и информацию по их связи с порядковыми номерами нужно хранить или номеров хватит?
Не понял вопрос. Если Вы про таблицу, то хранить надо
Мне не ясен смысл этой фразы, "пахнущий духами и туманами". Я бы предпочел посмотреть на внятно описанный алгоритм этой фильтрации.
Ну, а тут я чем могу помочь? Запостить третий том Д.Кнута "Сортировка и поиск"? Или Н.Вирта? Ну еще раз разберите символьные таблицы, которые работают как фильтры входных данных за счет совмещения совпадающих участков. А я отвечу на вопросы
Это был разговор ни о чем. Суровая правда заключается в том, что твой табличный метод предназначен только для записи произвольных символьных последовательностей, там в принципе нет понятия корней и и суффиксов.
Поэтому я и не стал спорить, но Вы вдруг вспомнили про подштанники. Помятуя, что тексты у нас только для наглядности, углубляться в состав слов не вижу смысла.
Но это второй топик, страница 43. Уже можно.
Вы лучше снабдите меня методикой объяснения счета на пальцах!
снабдите меня методикой объяснения счета на пальцах!
На всех трёх - запросто, вот пособие.
Вы здесь » Амальгама » Reductor Sapiens » Новая теория памяти – прорыв или утопия? #2