美文网首页
二进制和十进制3的倍数的正则式【自动机构造法】

二进制和十进制3的倍数的正则式【自动机构造法】

作者: ayagg | 来源:发表于2019-01-01 03:23 被阅读0次

 二进制3的倍数的正则

二进制3的倍数的自动机表如下

其中Qi表示余3的结果,推出

A = A0 + B1(1)

B = A1 + C0(2)

C = B0 + C1

利用R = Q+RP => R=QP*的公式可推出C = B01*,代入(2)式可得B=A1(01*0)*,再代入(1)式可得二进制3的倍数的正则式 A = [0 | (01*0)*]*,简单的测试了一下0,11,110,1001均成立,另外在别处常看到用1((10*1)|(01*0))*10*作为二进制3的倍数的正则式

 求十进制3的倍数的正则

十进制3的倍数的自动机表如下

推出

A = A[0369] | B[258] | C[147]

B = A[147] | B[0369] | C[258]

C = A[258] | B[147] | C[0369]

利用R = Q+RP => R=QP*的公式可推出

A = (B[258] | C[147])[0369]* (1)

B = (A[147] | C[258])[0369]* (2)

C = (A[258] | B[147])[0369]* (3)

然后分配率合并计算结果得十进制3的倍数的正则式

A = (| B[258] | (A[258] | B[147])[0369]*[147])[0369]*

  =   [0369]*

    | B[258][0369]*

    | A[258][0369]*[147][0369]*

    | B[147][0369]*[147][0369]*

  =   [0369]*

    | A[147][0369]*([147][0369]*[258][0369]*)*[258][0369]*

    | A[258][0369]*[258][0369]*([147][0369]*[258][0369]*)*[258][0369]*

    | A[258][0369]*[147][0369]*

    | A[147][0369]*([147][0369]*[258][0369]*)*[147][0369]*[147][0369]*

    | A[258][0369]*[258][0369]*([147][0369]*[258][0369]*)*[147][0369]*[147][0369]*

  = [0369]* (

                  [147][0369]*([147][0369]*[258][0369]*)*[258][0369]*

    | [258][0369]*[258][0369]*([147][0369]*[258][0369]*)*[258][0369]*

    |             [147][0369]*([147][0369]*[258][0369]*)*[147][0369]*[147][0369]*

    | [258][0369]*[258][0369]*([147][0369]*[258][0369]*)*[147][0369]*[147][0369]*

    | [258][0369]*[147][0369]* )*

  = [0369]* (( [147][0369]*

      | [258][0369]*[258][0369]*

      ) ([147][0369]*[258][0369]*)* (

        [258][0369]*

      | [147][0369]*[147][0369]*)

    | [258][0369]*[147][0369]* )*

十进制部分参考自正则表达式如何匹配 3 的倍数? - Belleve的回答 - 知乎 

相关文章

  • 二进制和十进制3的倍数的正则式【自动机构造法】

    一求二进制3的倍数的正则 二进制3的倍数的自动机表如下 其中Qi表示余3的结果,推出 A= A0 + B1(1) ...

  • python全栈学习之机制转换(2)

    1、十进制转二进制:除二取余法 2、二进制转十进制: 3、八进制转十进制: 4、二进制转八进制:三位一分法 5、十...

  • 十进制和二进制之间的相互转换

    1、十进制转二进制(0和1形式的表示法) 1.1、十进制整数部分转二进制,思路:将十进制整数取余,得到一个余数,然...

  • 计算机基础知识

    一,二进制和十进制转换 1.十进制转换为二进制:进行对2取余法计算 2.二进制转换为十进制: 从最后一位开始算,依...

  • 4.1二进制基础(文件操作)

    1、 十进制和二进制的由来 2、 进制转换 什么是二进制十进制转二进制采用短除2法二进制怎么表示一个数计算机为什么...

  • 进制运算

    二进制与十进制之间的转换 十进制转二进制 方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值...

  • 进制转换

    一、二进制与十进制互相转换 1. 十进制转二进制 方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得...

  • 一、数据的表示

    R进制转十进制(加权法) 十进制转二进制(短除法) 二进制转八、十六进制 原码、反码、补码、移码

  • Java入门:代码实现十进制转二、八、十六进制

    一、十进制-->二进制 二、十进制-->十六进制 三、封装查表法实现进制转换:

  • 计算机中的浮点数

    一、十进制整数转二进制 1.十进制整数转换为二进制整数采用除2取余,逆序排列法。具体做法是: 用2整除十进制整数,...

网友评论

      本文标题:二进制和十进制3的倍数的正则式【自动机构造法】

      本文链接:https://www.haomeiwen.com/subject/pkwglqtx.html