汉明

汉明

简单

说明

计算两条 DNA 链之间的汉明距离。

你的身体由含有 DNA 的细胞组成。这些细胞会定期损耗,需要更新,而更新的方式就是分裂成子细胞。事实上,人的身体平均一生中大约会发生 1 亿亿次细胞分裂!

细胞分裂时,它们的 DNA 也会复制。有时在这个过程中会出错,DNA 的单个片段被编码了错误的信息。如果我们比较两条 DNA 链并数出它们之间的差异,就能看出发生了多少次错误。这就是所谓的“汉明距离”。

我们用字母 C、A、G 和 T 来读取 DNA。两条链可能长这样:

GAGCCTACTAACGGGAT
CATCGTAATGACGGCCT
^ ^ ^  ^ ^    ^^

它们有 7 处差异,因此汉明距离是 7。

汉明距离在科学中的很多领域都很有用,不只是生物学,所以这是一个值得熟悉的好说法 :)

实现说明

汉明距离只对长度相同的序列有定义,因此尝试在长度不同的序列之间计算汉明距离是行不通的。

注意

在 Smalltalk 中,异常是 Exception 子类的实例。 你既可以针对自己的领域创建自定义的异常,也可以浏览一下这个继承体系,从中挑一个合适的,从而简化你提交的解答。

通过 GitHub 编辑 链接将在新窗口或新标签页中打开
Pharo Exercism

准备好开始 汉明 了吗?

注册 Exercism,借助 50 个练习 和真人导师指导,学习并掌握 Pharo,全部免费。