我正在寻找一些正则表达式/自动机帮助。我只限于+
或Kleene Star。解析表示三元数的字符串(如二进制,只有3),我需要能够知道结果是否小于4的倍数。
所以,例如120 = 0*1+2*3+1*9 = 9+6 = 15 = 16-1 = 4(n)-1
。
即使指向模式的指针也非常有用!
答案 0 :(得分:0)
您可以生成一系列值,以便在bash中使用bc进行一些观察:
for n in {1..40}; do v=$((4*n-1)); echo -en $v"\t"; echo "ibase=10;obase=3;$v" | bc ; done
3 10
7 21
11 102
15 120
19 201
23 212
27 1000
31 1011
...
答案 1 :(得分:0)
请注意,每个数字的值(十进制)比可被4整除的值多1或1。所以1(lsb)数字是一个多于0,3(第二)数字是一个少于4,9(第三)数字是1比8多,27(第四)数字是一个少于28,等等。
如果你总结所有偶数位数和所有奇数位数,然后将1加到奇数位数(如果从1开始计算),你应该得到相等。
在你的例子中:odd:(0 + 1)+1,偶数:(2)。所以他们是平等的,所以数字是4n-1。