|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov м, т.к. не соблюдены *все* необходимые требования. 1) и какие же требования не соблюдены? а) строка есть б) правила есть в) все шаги алгоритма выполнены г) конечный ответ получен 2) сложение в столбик может быть приведено к Марковскому алгоритму, нужно лишь записать строку нужным нам образом ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 20:47 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov, я знаю, что решетки # это чит, но идея состоит в том, чтобы воспроизвести сложение в столбик :-) PS а если число преобразовывать, и решетки убирать, то остаются 2 правила (как в твоем решении) 12->20 02->10 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 21:40 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
mini.weblab Aleksandr Sharahov, я знаю, что решетки # это чит, но идея состоит в том, чтобы воспроизвести сложение в столбик :-) PS а если число преобразовывать, и решетки убирать, то остаются 2 правила (как в твоем решении) 12->20 02->10 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Не в решетках дело. Можно использовать хоть решетки, хоть собачки, хоть смайлики. Но тогда надо указать замены, которые привели исходное выражение к выражению с решетками, а также замены, которые приводят результат с решетками к результату без решеток. Причем записать все эти правила надо в определенном порядке, который требуется незатейливому алгоритму Маркова. Речь о том, что этого всего не хватает. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 22:17 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov, я знаю, что формально для решения задачи as is этого не хватает, но у меня были другие цели ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 22:40 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
более шустрый алгоритм сложения и умножения в столбик 1000100111111000*1000110101111101 = 4049 замен 1000110101111101*1000100111111000 = 4386 замен Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60.
В интерпретатор добавлен оптимизатор порядка правил. Для этого в командной строке запустите с ключам /o и /s или используйте DropAtMe(Opt).bat. В файле все образцы должны быть с верными эталонными значениями. Образцы нужно подобрать таким образом что бы использовались все правила. Оптимизатор только переставляет правила местами для того что бы уменьшить число итераций (не замен). Если перестановка увеличила число шагов или какой либо из образцов перестал быть равным эталону то она отклоняется. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2020, 00:58 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
а почему бы не сделать так: алфавит 0,1,+ Правило: a+b -> f(a,b) разве это противоречило бы правилам алгоритма? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2020, 03:22 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
mini.weblab а почему бы не сделать так: алфавит 0,1,+ Правило: a+b -> f(a,b) разве это противоречило бы правилам алгоритма? Это противоречит определению НАМ: 1. НАМ - это упорядоченный набор строковых замен (некоторые замены могут иметь флаг останова). 2. НАМ начинает работу с единственной входной строки, последовательно выполняя шаги. 3. На очередном шаге НАМ просматривает список замен с самого начала и выполняет первую подходящую замену. При этом замена в текущей строке выполняется 1 раз для первого подходящего фрагмента строки. 4. НАМ останавливается, если на очередном шаге не найдена подходящая замена или если выполненная замена имела флаг останова. 5. Результатом работы НАМ является текущая строка в момент прекращения его работы. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2020, 10:28 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
mini.weblab, поэтому когда вас просят разработать НАМ для сложения чисел в двоичной записи, это означает, что нужно просто указать список замен. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2020, 10:39 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
mini.weblab а почему бы не сделать так: алфавит 0,1,+ Правило: a+b -> f(a,b) разве это противоречило бы правилам алгоритма? Давай мы этот вопрос адресуем новому топику который ты сама создашь. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2020, 11:21 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Swa111, правильно ли я понял, что последний более быстрый вариант реализации бинарного умножения отличается от предыдущего перестановкой замен и добавлением ускорителей, например: 0g0000 -> 00000g 0g00 -> 000g 0g0 -> 00g P.S. НАМы и без оптимизаций довольно трудны для понимания, а после перестановок и вовсе теряют читаемость, поэтому, проявляя заботу о читателях, хочется попросить наряду с оптимизированной версией также публиковать неоптимизированную версию алгоритма. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2020, 13:12 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
mayton, нет, спасибо, думаю, не стоит ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2020, 14:16 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov, Да весь выигрыш как раз в ускорителях. При этом если считать именно число шагов по правилам то реальную помощь дает только 0t00 -> 000t. Остальные хоть и уменьшают число замен, но увеличивают число итераций ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2020, 16:21 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Беря во внимание сугубую ДОКАЗАТЕЛЬНУЮ теоретичность НАМ, я-бы предложил писать чисто-рафинированные алгоритмы без оптимизаций. Оптимизации всегда можно предложить потом. Ценой какой-то потери читабельности. Мне нравится вариант когда мы например "сложение" просто заменяем инкрементом с рекурсивным условием. Это - в духе функциональщины. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2020, 16:41 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Следующий вопрос. Можем-ли мы реализовать ПОЛИЗ. Пример: Input: Код: sql 1.
Output Код: sql 1.
При этом понимаем что плюс и минус - бинарная функция а квадратный корень - унарная. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2020, 17:00 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Еще вопрос. Можем-ли мы реализовать общий случай генерации перестановок (combinations) для любого числа символов? Input: Код: sql 1.
Output: Код: sql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2020, 17:02 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
mayton, это не просто "в духе", все эти папагиглеммы и есть существо функциональщины, доказывающее, что все, что может быть вычислено, вычислимо иммутабельным образом, если замену видеть как атомарную операцию. Алгорифм бежит только вперед. А то, что обычно алгоритмом называется, представлено списком замен, которые, в обычном понимании, просто "данные". Попом на этом сидит вся функциональщина, одновременно с декларативными прологами и последователями. Подставив еще одну замену ты внедряешь еще одну первоклассную функцию, по сути. Я никогда не влезал в эту тему, а на беглый взгляд вот такой вопрос заинтересовал: В классике алгорифмы статичны в отношении списка используемых правил. Исследовал ли кто-нибудь, и как назвал, подобные конструкции с динамически изменяемым в процессе работы алгорифма списком правил. Есть для такого случая формализьма... ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2020, 17:11 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
booby В классике алгорифмы статичны в отношении списка используемых правил. Исследовал ли кто-нибудь, и как назвал, подобные конструкции с динамически изменяемым в процессе работы алгорифма списком правил. Есть для такого случая формализьма... Я на самом деле хотел еще сильнее усугубить вопрос формализма НАМ. Лет 15 назад мне попала в руки Книга Душкина. И она (честно говоря) надолго отбила у меня желание изучать ФП и Хаскель в том числе. Книга - изобиловала отсылкой к математике. Ну чтобы понять сравнение это как полезность Дональда Кнута в изучении С++. Вроде и надо. И в тоже время старина Кнут затягивает тебя как воронка в очень занудные исследования непонятных сущностей как то машина MIX, ленточные сортировки, и прочие абстракции которые современному разработчику вобщем не нужны. Их просто негде применить. А если кто-то ищет другой порог вхождения то он его 100% найдет. И это будет не Кнут. Слава богу мой хороший наставник Саша Немиш и и коммитер в Хаскель сообщество Виталий Брагилевский немного освежили во мне желание снова посмотреть на этот язык. Я вобщем не планирую особо на нем кодить. Нет заказов вообще. Но его изучать полезно чтобы просто понять - а зачем собсно в Scala вводили ту или иную метафору или зачем например Java нужны streams с искусственными ограничителям. Так вот. В главе 5.1 Основы комбинаторной логики (КЛ) Душкин приводит комбинаторы тождества (I), канцелятор (K), коннектор (S), композитор (B), пермутатор (С) и дубликатор (W). Меня это заинтересовало. К сожелению Душкинские примеры с неподвижной точкой и играми с базисами были для меня непонятны с практической стороны. Я искал за что зацепиться с практики. Не смог. И данный топик является просто пред-течей или преамбулой для другого топика который я просто обдумываю. Обычно такой вопрос у меня вызревает долгими годами. И когда я пишу его текст - он на 80 % уже у меня в голове готов. Я просто дополняю его линками. Так вот. Какая связь между НАМ и КЛ. Я посчитал что если момедитировать над Марковскими правилами то возможно я увижу какую-то мысль или связь которая меня подтолкнет к логике комбинаторов. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2020, 17:28 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
booby Попом на этом сидит вся функциональщина, одновременно с декларативными прологами и последователями. Подставив еще одну замену ты внедряешь еще одну первоклассную функцию, по сути. Тема пролога мне была интересна прошлой осенью. Я хотел ее применить для поиска фактов в дата-аналитике крупного бизнеса. Но не вышло по техническим причинам. Я не смог затащить в проект зависимость от SWI-Prolog. И моё достижение - это формальное доказательство на Прологе того что Иисус Христос - сын божий. Только для этого мне пришлось записать порядка несколько сотен библейских фактов о отцовстве и наследовании. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2020, 17:34 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
mayton Еще вопрос. Можем-ли мы реализовать общий случай генерации перестановок (combinations) для любого числа символов? Input: Код: sql 1.
Output: Код: sql 1. 2. 3. 4. 5. 6.
результат должен быть строкой с разделителем? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2020, 17:34 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov результат должен быть строкой с разделителем? Хм... хороший вопрос. Если у нас будет автомат-преобразователь следующей перестановки - то это будет успех. Код: sql 1. 2. 3. 4. 5.
Или если надо будет ввести искусственно код состояния. Или код рекурсии - то давай введем. Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2020, 17:45 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
booby В классике алгорифмы статичны в отношении списка используемых правил. Исследовал ли кто-нибудь, и как назвал, подобные конструкции с динамически изменяемым в процессе работы алгорифма списком правил. У меня не возникало желания изменять правила. Но очень хотелось разбить их на непересекающиеся модули. Причем терминалка должна была бы просто переходить в другой модуль. Пример. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Разумеется это не чистый НАМ. Но это моё определённое улучшение в духе Маркова. Надеюсь госпожа mini.weblab меня здесь поймет и не будет настаивать на имеративных языках. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2020, 17:58 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
mayton, это выглядит как чистый сахар, удобство программиста, даже если после стопа предполагается возврат. В общем - вопрос реализации. Изменяемый состав правил - это программа пишет сама себя по мере функционирования, в целях всякого дип лёрнинга и построения прочих нейросетей. То есть, кроме накопления состава фактов ( в терминах пролога) происходит докидывание/накопление, а то и замена, правил вывода. Вот что-то такое я думал, когда предыдущий пост писал. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2020, 18:22 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
booby, мне кажется, японцы чего такого про пролог измышляли, когда хавтались за него, как язык будущего искусственного интеллекта. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2020, 18:26 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Я тебя понял. Нет о таком я не думал. Очень напоминает eval в транслируемых языках. И вопрос доказательства останова (к примеру) для нас становится еще более неочевидным. Хотя я не против эксперимента если ты предложишь своё улучшение. NMA-eval. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2020, 18:26 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
booby booby, мне кажется, японцы чего такого про пролог измышляли, когда хавтались за него, как язык будущего искусственного интеллекта. У меня был еще один мотиватор. Экспертные системы в роли telegram-чят ботов. Почему я об этом задумался. Когда я посмотрел их исходники в e-commerce. Я пришел в ужас. Интеллектом там и не пахнет. Все на if-else. И ребята которые пишут диалоговых ботов даже слыхом не слыхали про Prolog. Мне это показлось как минимум - обидным. Конечно я не собирался писать своего чят бота в телеграм. Но я хотел реализовать некое теч-демо взяв экспертную систему из 80х (ну какую-нибудь по диагностике неполадок например автомобиля). Взять - я имею в виду "слямзить" готовую. И просто интегрировать ее с Телеграм-Ботом и показать. - Ребята! Вот как надо! Вот как родные! ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2020, 18:32 |
|
|
start [/forum/topic.php?fid=16&msg=39964570&tid=1339708]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
158ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 288ms |
0 / 0 |