计算 f(x)=x/2 的马尔可夫算法

Markov algorithm to compute f(x)=x/2

我想编写一个马尔可夫算法来计算 f(x)=x/2 和集合 А={|, , =, /} 中的余数。例如,如果输入是 |||||/||= 输出应该是 |||||/||=||*|.

我能得到的最好的是一个显示结果和余数的简单算法,但它缺少分子应该在的第一部分。

*||->|*
*|/||=+>*|
|*/||=+>|
->/||=*

输入为|||||/||=,输出为/||=||*|

不要删除|而是标记它们,然后将它们的信息移到右边:

  1. 规则 | -> 1# , #| -> |#, #1 -> 1# 可以把你的初始 |||||/||= 变成 11111#####/||=
  2. 现在使用您的规则,但使用 # 而不是 |;不过我不完全理解你的符号。
  3. 如果输出11111/||=||*|对你来说已经足够好了,你可以到此为止。否则问题很复杂,因为初始的 |||||.../||可以变得任意长,如果有任何规则适用,系统将不会终止。