|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
mayton, да на гите я есть, но пользуюсь редко на сайте не сработал наверное из за того что там ограничение на число правил, не более 20. Либо там другой синтаксис Пошаговый расчет можно получить и в моем интерпретаторе, просто в образцах справа задай не верные результат, тогда выдаст пошаговое выполнение. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 11:18 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Я возьму с розетты еще одну реализацию чтоб уже работала без ограничений. Кстати это хорошо что ты добавил каменты в рулы. Я тоже расширю этот убогий язык для такой возможности. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 11:25 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
палки в двоичную 0|| |0 0| 1 || |0 | 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 12:26 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov, спасибо Саш. Попробую. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 12:29 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
mayton, Да дело не в *|, а в 1/0. Первая часть переводит из в палки, вторая из палок. После первого преобразования из палки в 1/0 число тут же станет палкой. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 12:55 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
crutchmaster, замени палки на слеши ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 13:04 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov, И что? :start 1->| ... |->1 //goto :start 1/0 не на что заменить они должны быть в выхлопе. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 13:07 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 13:37 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Еще мысли. Утилитарные задачи. Не связанные с вычислениями а скорре так. Проблемы. Например 1) Априорное знание алфавита. Если делать swap или движение какого-то символа в какую-то сторону мы должны в левой части rules предусмотреть этот символ в сочетании со всеми возможными комбинациями. Описать регулярку или мета-символ мы не можем. Господин Марков этого не предусмотрел. Следовательно надо как-то опираться на область входных значений. 2) Утилитарные функции которые могут пригодится. Одну из них мы уже почти сделали. Это перевод из двоички в унарность и обратно. Для комплекта хорошо-бы сделать тоже самое для десятичной. Шестнадцатеричная из двоичной переводится тривиально. Плюс четыре базовых арифметических операции. Я думаю гуглёж всегда помогает - но прошу тех кто уже нагуглил - не спойлерите а дайте ребятам возможность самим подумать. Я думаю 1-2 недели - это нормальный строк для этого топика. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 14:55 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
mayton, мое умножение и вычитание под спойлером, насчет деления не ясно, куда девать остаток //умножение ('*','<^>'), ('1<','<3'), ('0<','<2'), ('<',''), ('>1','3>'), ('>0','2>'), ('>',''), ('|2','2||'), ('3','2|'), ('2',''), ('|^','^='), ('^',''), ('=|','|/='), ('=/','/='), ('|',''), ('=',''), ('0//','/0'), ('0/','1'), ('//','/0'), ('/','1') //пример умножения 101*11 101<^>11 10<3^>11 1<23^>11 <323^>11 323^>11 323^3>1 323^33> 323^33 2|23^33 22||3^33 22||2|^33 22|2|||^33 222|||||^33 222|||||^2|3 222|||||^2|2| 222|||||^22||| 22|||||^22||| 2|||||^22||| |||||^22||| |||||^2||| |||||^||| ||||^=||| |||^==||| ||^===||| |^====||| ^=====||| =====||| ====|/=|| ===|/=/=|| ==|/=/=/=|| =|/=/=/=/=|| |/=/=/=/=/=|| |/=/=/=/=/|/=| |/=/=/=/=/|/|/= |//==/=/=/|/|/= |//=/==/=/|/|/= |///===/=/|/|/= |///==/==/|/|/= |///=/===/|/|/= |////====/|/|/= |////===/=|/|/= |////===/|/=/|/= |////==/=|/=/|/= |////==/|/=/=/|/= |////=/=|/=/=/|/= |////=/|/=/=/=/|/= |/////=|/=/=/=/|/= |/////|/=/=/=/=/|/= |/////|//==/=/=/|/= |/////|//=/==/=/|/= |/////|///===/=/|/= |/////|///==/==/|/= |/////|///=/===/|/= |/////|////====/|/= |/////|////===/=|/= |/////|////===/|/=/= |/////|////==/=|/=/= |/////|////==/|/=/=/= |/////|////=/=|/=/=/= |/////|////=/|/=/=/=/= |/////|/////=|/=/=/=/= |/////|/////|/=/=/=/=/= |/////|/////|//==/=/=/= |/////|/////|//=/==/=/= |/////|/////|///===/=/= |/////|/////|///==/==/= |/////|/////|///=/===/= |/////|/////|////====/= |/////|/////|////===/== |/////|/////|////==/=== |/////|/////|////=/==== |/////|/////|/////===== /////|/////|/////===== //////////|/////===== ///////////////===== ///////////////==== ///////////////=== ///////////////== ///////////////= /////////////// /0///////////// //0/////////// ///0///////// ////0/////// /////0///// //////0/// ///////0/ ///////1 /0/////1 //0///1 ///0/1 ///11 /0/11 /111 1111 //вычитание ('-','<^>'), ('1<','<3'), ('0<','<2'), ('<',''), ('>1','3>'), ('>0','2>'), ('>',''), ('|2','2||'), ('3','2|'), ('2',''), ('|^|','^'), ('|^','|'), ('0||','|0'), ('0|','1'), ('||','|0'), ('|','1'), ('^1','.-1'), //точка означает терминальную операцию ('^','0') //пример вычитания 101-111 101<^>111 10<3^>111 1<23^>111 <323^>111 323^>111 323^3>11 323^33>1 323^333> 323^333 2|23^333 22||3^333 22||2|^333 22|2|||^333 222|||||^333 222|||||^2|33 222|||||^2|2|3 222|||||^22|||3 222|||||^22|||2| 222|||||^22||2||| 222|||||^22|2||||| 222|||||^222||||||| 22|||||^222||||||| 2|||||^222||||||| |||||^222||||||| |||||^22||||||| |||||^2||||||| |||||^||||||| ||||^|||||| |||^||||| ||^|||| |^||| ^|| ^|0 ^10 -10 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 16:42 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov, ого ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 16:49 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Измененный алгоритм, число слагаемых может быть любым. На больших числах выигрывает по скорости счету на "счетных палочках". Код: 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.
Пример 1+11+100+10 ==> 1010 Код: plaintext 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.
110101+110 ==> 111011 Код: plaintext 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 17:36 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Хм.. Это преобразование со стороны выглядит странно. Оно как будто-бы ничего не делает. Просто заменяет одни цифры на другие. И знак * наверное можно было сохранить. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 18:26 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
mayton Aleksandr Sharahov Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Хм.. Это преобразование со стороны выглядит странно. Оно как будто-бы ничего не делает. Просто заменяет одни цифры на другие. И знак * наверное можно было сохранить. Дык это легко поверить, достаточно убрать "ненужное" ) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 18:49 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Swa111, правильно ли я понял, что в твоей реализации количество правил зависит от количества бит в наибольшем слагаемом? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 19:01 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov mayton пропущено... Хм.. Это преобразование со стороны выглядит странно. Оно как будто-бы ничего не делает. Просто заменяет одни цифры на другие. И знак * наверное можно было сохранить. Дык это легко поверить, достаточно убрать "ненужное" ) Нет. Я понимаю что мы подготавливаем почву для других расчетов. Но если у нас будет 20 расчетов - нужно-ли нам 20 алфавитов или хватит двух? По очереди менять "01" <=> "23". ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 19:28 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
mayton Aleksandr Sharahov пропущено... Дык это легко поверить, достаточно убрать "ненужное" ) Нет. Я понимаю что мы подготавливаем почву для других расчетов. Но если у нас будет 20 расчетов - нужно-ли нам 20 алфавитов или хватит двух? По очереди менять "01" <=> "23". Ну, мне так проще конструировать алгоритм: мы таким образом гарантируем, что входные символы не пересекаются с выходными, и, тем самым, при формировании результата не будет срабатываний замен из начала списка, которые испортят всю малину. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 20:14 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov, Нет, число правил одинаковое для чисел любой разрядности. Алгоритм умножения чисел в столбик. Отчасти полагается на предыдущий алгоритм сложения нескольких чисел. всего за каких то 9949 замен может перемножить числа 1000100111111000 на 1000110101111101 Код: 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. 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.
Обновил интерпретатор, исправлена ошибка с зависанием если ни одно правило не сработало. Добавлено:
... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 20:39 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
незамутненное преобразованиями систем счисления деление на палках Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 22:07 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
немного сократил Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 22:26 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
mayton Но если у нас будет 20 расчетов - нужно-ли нам 20 алфавитов или хватит двух? По очереди менять "01" <=> "23". Кстати, легко доказать, что если существуют НАМы для нескольких функций, то существует НАМ для их суперпозиции. Поэтому достаточно реализовать НАМы для унарной системы счисления, т.к. у нас есть функции перевода в нее и обратно. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 23:21 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Унарное вычитание Код: sql 1. 2.
Input: 11111-111 Output: 11 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2020, 23:46 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
Aleksandr Sharahov mayton Но если у нас будет 20 расчетов - нужно-ли нам 20 алфавитов или хватит двух? По очереди менять "01" <=> "23". Кстати, легко доказать, что если существуют НАМы для нескольких функций, то существует НАМ для их суперпозиции. Поэтому достаточно реализовать НАМы для унарной системы счисления, т.к. у нас есть функции перевода в нее и обратно. Я вот щас какраз думаю над композицией функций. У нас есть универсальный аппарат. И есть уже кодовая база. В функциональщине есть такая штука если есть f(x), g(x) функции то f(g(x)) это некая новая функция которая последовательно применяет g а потом f. Если бы не было терминального оператора |-> то мы могли-бы просто копи-пастой формировать композиции алгоритмов Маркова просто как плоский текст. И если-бы не было пересечений алфавитов левых выражений rules. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 00:08 |
|
Четверговый НАМ и сложение двоичных чисел в строках
|
|||
---|---|---|---|
#18+
перевод из десятичной в унарную Код: 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. 61. 62. 63. 64. 65. 66.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2020, 00:11 |
|
|
start [/forum/topic.php?fid=16&msg=39963990&tid=1339708]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
141ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 237ms |
total: | 482ms |
0 / 0 |