问题描述: matlab中 a=1:19; 如何实现a中19个数的随机交换,用遗传算法如何实现第一步的编码 谢谢 1个回答 分类:综合 2014-10-29 问题解答: 我来补答 你可以采用二进制编码,假设你的染色体长度为10,每一位上都是0或者1,如x=[1 0 0 1 1 1 0 1 0 1],对应的实数值为y=629;那么它对应的取值范围是[0,1023],显然不是我们要的1:19这个范围,那么我们要再进行转化.要用a=y*(19-1)/(2^10-1)+1来对二进制值进行转化,转化为[1,19]这个范围.转化以后,对应着前面给出的二进制编码x,它的a值为12.07,取整后就是12.那么通过以上的方法,你就可以得到1:19中间的数的随机交换了. 展开全文阅读