我的previous question掩盖了我的经验不足,是基于一个假设。现在我聪明多了。(把1和0放在一个字符串中?啊!我对这个建议一笑置之!
我的问题是,我应该如何编码我的基因组?
在纸上,它们看起来是这样的:

01010011010110010

17位,对要测试的参数进行编码(在某些情况下是单独编码,在某些情况下是成组编码)。
要求如下:
需要可扩展。目前可能有17个,但随着选项的添加、删除或修改其范围,可能会增加/缩小。
每一个位都需要可以单独翻转,以表示点突变。
理想情况下,取下两个基因组的最后一个x%并转换它们应该很容易(代表交叉)。
必须有一种直接的方法来用明文表示基因组。这里的重点是方便性而不是人类的可译性。(想想网址缩写。)
有人有什么好主意吗?(如果有用的话,我用c。)

最佳答案

正如andrey所说,bitarray可能是您的最佳答案,它满足您的所有要求。
1)可以用构造函数设置位数
2)它允许您设置(开或关),或者,和,异或,而不是开位
3)你可以绕过去的X%做交叉
4)有一个toString应该允许您输出它。

10-08 01:49