|
|
A257291型 |
| 接受前n个素数的base-2表示的最小DFA中的状态数。 |
|
2
|
|
|
4, 4, 5, 5, 6, 8, 9, 9, 10, 11, 11, 12, 13, 13, 14, 16, 17, 17, 19, 20, 21, 21, 21, 22, 23, 23, 24, 24, 24, 25, 26, 27, 28, 28, 29, 29, 31, 32, 33, 35, 36, 36, 37, 38, 38, 38, 39, 40, 41, 40, 41, 41, 42, 43, 44, 44, 44, 45, 46, 46, 47, 47, 48, 48, 49, 49, 49, 51, 52, 52, 54, 55, 55, 56, 56, 57, 58, 58
(列表;图表;参考;听;历史;文本;内部格式)
|
|
|
抵消
|
1,1
|
|
评论
|
所谓“DFA”,我们指的是确定性有限自动机,它必须是“完整的”(也就是说,每个状态都必须存在转换)。因此,n=1的最小DFA对应于接受字符串“10”而不接受其他字符串的DFA。由于还需要一个“死状态”,因此需要四个状态。
|
|
链接
|
|
|
例子
|
对于n=3,最小DFA包括(3)=5个状态:
+------------------------+
开始1|v
+-----------+ 1 +--------+ 0 +=====+ 1 +=====+
|10,11101|--->|0,1,01|--->| e,1|--->|e|
+-----------+ +--------+ +=====+ +=====+
| 0 | 0 | 0,1
||v(v)
| | +------+
+-------------------------------+------>|已死亡|
+------+
^ | 0,1
+-+
每个状态都是一组需要的位串。开始状态是二进制中的素数2,3,5。每个“1”转换都取从1开始的字符串并删除该1。每个0转换都类似。“e”是空字符串。每个包含“e”的状态都是可接受的,因为它是原始素数之一的末尾。“死”是一组没有字符串的集合,是不可接受的接收器。输入字符串太长或不是所需素数之一的前缀,结果是死的。
(完)
|
|
黄体脂酮素
|
(PARI)a(n)={
my(m=Map(),q=List([apply(p->Vecsmall(binary(p)),primes(n))]);
while(#q,我的(s=q[#q]);列表弹出(q);
如果(!mapisdefined(m,s),则mapput(m,s,1);
对于(i=0,1,listput(q,apply(v->v[^1],
选择(v->#v&&v[1]==i,s)));
(Python)
从sympy导入prime,primerange
定义a(n):
m=dict()
q=[素数范围(1,素数(n)+1)中p的元组(bin(p)[2:])]
当len(q)>0时:
s=q.pop()
如果s不以m为单位:
米[s]=1
对于“01”中的i:
q.append(如果len(v)和v[0]==i,则s中v的元组(v[1:])
返回长度(m)
|
|
交叉参考
|
|
|
关键词
|
非n
|
|
作者
|
|
|
扩展
|
a(26)-a(78)来自凯文·莱德2020年6月2日
|
|
状态
|
经核准的
|
|
|
|