两个序列之间的共同字符串

时间:2019-08-21 23:49:06

标签: python random sequence percentile

我有两个与同一个主题相关的问题。我对100个元素的16000个序列进行了模拟,没有重复,且数字在1-4之间,例如:124232143214214223142314 ...

进行这些模拟以查看随机生成的序列和预定义序列之间最长的序列是什么。参与者还被要求这样做,以生成他们先前在没有意识的情况下学到的顺序。

我想找到两个序列之间共有的所有三胞胎。 因此,如果我们有序列A:12342134213421313242 ...和序列B:21342134123214。它将必须计算所有三元组的共同数 包括重复:213、134、342、213等。

1 个答案:

答案 0 :(得分:1)

尝试类似的事情:

import itertools

x = "12342134213421313242123"
y = "213421341232123"
m = ["1","2","3","4"]

#dict of triplet vs [no of repetitions in x, in y]
z={k: [x.count(k), y.count(k)] for k in ["".join(el) for el in [a+b+c for a in m for b in m for c in m if a!=b and b!=c and a!=c]]}
#total number of common triplets:
z_no = sum([x.count(k) if x.count(k)>0 and y.count(k)>0 else 0 for k in ["".join(el) for el in [a+b+c for a in m for b in m for c in m if a!=b and b!=c and a!=c]]])
#broken down by triplet
z_final = {k: v[0] for k,v in z.items() if v[0]>0 and v[1]>0}
相关问题