|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Swa111 Aleksandr Sharahov, в делении наверное это правило лишнее Код: plaintext
так сделано по двум причинам: 1. для отладки, чтобы видеть пустой результат в мемо 2. для упрощения перевода результата в двоичную если не требуется ни то, ни другое, то две последних строки можно заменить одной ('-#', '') ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 00:57 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Swa111 перевод из десятичной в унарную а мы не гонимся за скоростью ) Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 01:13 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
в десятичную Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 01:35 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
пусть дано: "1111+111" решение: 1) преобразовываем строку на входе к виду #00#10#11#11#11# 2) далее на преобразованной строке применяем правила "00" -> "0" "01" -> "1" "10" -> "1" "#0#11#" -> "#1#0#" "#1#11#" -> "#11#0#" если не получилось применить ни одного из правил, то выходим из цикла 3) стираем "#" и получаем результат 10110 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 03:08 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
mini.weblab, Это что? Сложение в четверичной системе? Мне кажется - первый шаг слабо обоснован. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 09:02 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov Swa111 перевод из десятичной в унарную а мы не гонимся за скоростью ) Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Это шикарно ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 10:25 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
mini.weblab пусть дано: "1111+111" решение: 1) преобразовываем строку на входе к виду #00#10#11#11#11# 2) далее на преобразованной строке применяем правила "00" -> "0" "01" -> "1" "10" -> "1" "#0#11#" -> "#1#0#" "#1#11#" -> "#11#0#" если не получилось применить ни одного из правил, то выходим из цикла 3) стираем "#" и получаем результат 10110 непосредственное сложение в двоичной системе достаточно очевидно, но реализаций могут быть десятки, вот, например, моя реализация Код: pascal 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 10:40 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Из всех систем счисления - десятичная самая неудобная для этих операций. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 12:14 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Саша как тебе такая идея? Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 12:15 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
mayton Саша как тебе такая идея? Код: sql 1. 2. 3. 4. 5.
идея применительно к чему? а то у нас уже тут до фига всего. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 12:50 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Мне почему-то всмомнилась идея Египетского Умножения. Тоесть взять любую систему счисления. И заменить умножение сложением. С небольшим числом слагаемых. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 12:54 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Например (в десятичной) 731 * 13 = 731 * (1 + 4 + 8) = 731 + (( 731 + 731 ) + ( 731 + 731 )) + .... и т.д. Получается как-бы такое бинарное дерево сложений. И здесь 4 * 731 разваливается на две частичные слагаемые которые в императивных языках хорошо оптимизируются. Вобщем в императивных языках у нас будет не 13 сложений а нечто логарифмическое. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 13:00 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Сделал двоичное умножение, вышло достаточно быстро: 1000100111111000*1000110101111101 = 5190 замен 1000110101111101*1000100111111000 = 6006 замен Код: pascal 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. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 16:35 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
mayton Например (в десятичной) 731 * 13 = 731 * (1 + 4 + 8) = 731 + (( 731 + 731 ) + ( 731 + 731 )) + .... и т.д. Получается как-бы такое бинарное дерево сложений. И здесь 4 * 731 разваливается на две частичные слагаемые которые в императивных языках хорошо оптимизируются. Вобщем в императивных языках у нас будет не 13 сложений а нечто логарифмическое. для двоичной системы как раз и получится умножение в столбик ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 16:48 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Практическое применение алгоритма Маркова: сложение в столбик Code link: https://repl.it/repls/RepulsiveRowdyCareware ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 17:12 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
mini.weblab, Во-первых, там не умножение, а сложение. Во-вторых, совсем не по Маркову. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 17:18 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov, сложение поправила :) при умножении в столбик применяется алгоритм Маркова и при записи арифметических действий в строку тоже можно применить этот алгоритм ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 17:22 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
mini.weblab Aleksandr Sharahov, сложение поправила :) при умножении в столбик применяется алгоритм Маркова и при записи арифметических действий в строку тоже можно применить этот алгоритм Перенос переполнения в старший разряд - он не Марковский, а общечеловеческий ) Марковость - это (то, чего там вовсе нет): 1. задать таблицу замен, 2. взять строку с исходной формулой, 3. по Марковкому алгоритму применять замены к формуле до тех пор, пока алгоритм не остановится. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 17:30 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
mini.weblab Aleksandr Sharahov, сложение поправила :) при умножении в столбик применяется алгоритм Маркова и при записи арифметических действий в строку тоже можно применить этот алгоритм Как-то... переусложнено всё. Ты-же понимаешь что НАМ - это чистейшая теория. Мозговой эксперимент. И если ты вводишь императивный язык как подпорку или костыль что-бы НАМ улучшить то это уже совсем другой метод. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 17:32 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
ммм... нет, я перехожу от абстракции к конкретному примеру, и дальше показываю, что умножение в столбик тоже относится к группе алгоритмов Маркова для этого я переписываю начальную строку, так, как мне нужно для примера, и применяю серию правил (их у меня 5) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 17:56 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
mini.weblab ммм... нет, я перехожу от абстракции к конкретному примеру, и дальше показываю, что умножение в столбик тоже относится к группе алгоритмов Маркова для этого я переписываю начальную строку, так, как мне нужно для примера, и применяю серию правил (их у меня 5) Давай, рассмотрим сложение двоичных чисел на примере выражения '101+11'. Какие правила нам надо применить, чтобы последовательными преобразованиями исходного выражения получить результирующую строку '1000' ? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 18:18 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 18:29 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
mini.weblab Aleksandr Sharahov, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Давай разбираться с самого начала. Откуда взялось это выражение '#00#10#01#11#' ? Какое правило было применено к исходному выражению '101+11' ? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 18:33 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov, мы решаем разные задачи, в самом первом посте, я сказала, что покажу, что сложение в столбик выполняется по алгоритму Маркова. и дальше просто идет proof of concept. :-) я хочу сказать, а почему бы не посмотреть на проблему под другим углом. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 18:55 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
mini.weblab Aleksandr Sharahov, мы решаем разные задачи, в самом первом посте, я сказала, что покажу, что сложение в столбик выполняется по алгоритму Маркова. и дальше просто идет proof of concept. :-) я хочу сказать, а почему бы не посмотреть на проблему под другим углом. :-) Если смотреть под другим углом, то сложение в столбик выполняется как обычно, побитовым сложением с учетом переноса. От того, что некоторые правила записаны стрелочками, весь алгоритм сложения не становится Марковским, т.к. не соблюдены *все* необходимые требования. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 19:08 |
|
|
start [/forum/topic.php?fid=16&msg=39964420&tid=1339708]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
139ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 271ms |
0 / 0 |