在开发模拟程序时,我得到了一组数字对作为中间结果。这些对由无符号(正整数)形成,严格排序(如果对是[n1,n2]然后是n1“<”n2),它们不重复(如果[n1,n2]和[n3,n4]在集合中是对,然后是n1!= n3或n2!= n4)。有两种特殊类型的对:第一个元素为0的对,开放对;那些第二个元素是成对组成部分中最大数字的那些,NMAX,密集对(实际上数字NMAX是0,但这只是一个方便的命名法)。
从这组对中,我构建了链接对的链序列,链以开放对开始,以紧密对结束,并且其连续对共享一个数值(如果[n1,n2]和[n3,n4] ]是链中的连续对,然后是n2 = n3)。链的类型为[0,n1] [n1,n2] [n2,n3] ... [nm,NMAX]。链的长度可以从2变化到组中的对数。 我正在寻找一种算法,从给定的一对对构造所有可能的链。
集合中的对数是有限且已知的,并且取决于模拟,它可以从几百到几百万不等。对于数百个我可以想到一个过程,但对于(非常)大数字,需要一个有效的方法。 我做了一些搜索但没有成功,尽管在这个问题上必须有很多东西(例如,从氨基酸的短链基因测序中)。 理念和指导赞赏!