java将双值编码为二进制字符串
考虑到双值的精度(本例中为1.234-精度为3),我试图在一段时间内(比如在“a”和“b”之间)将双值编码为二进制字符串(在Java中)。结果字符串的长度应该相等
我试过使用:
String binaryForm = Long.toBinaryString(Double.doubleToRawLongBits(n));
不幸的是,结果字符串的长度不相等
有什么想法吗?产生的字符串将被用作遗传算法中的染色体
你可以在下面搜索框中键入要查询的问题!
考虑到双值的精度(本例中为1.234-精度为3),我试图在一段时间内(比如在“a”和“b”之间)将双值编码为二进制字符串(在Java中)。结果字符串的长度应该相等
我试过使用:
String binaryForm = Long.toBinaryString(Double.doubleToRawLongBits(n));
不幸的是,结果字符串的长度不相等
有什么想法吗?产生的字符串将被用作遗传算法中的染色体
# 1 楼答案
使用@rgetman的建议,但将0和c=b-a之间的值标准化。因此,双输入n的新值(m)为:
然后从零到64。所有输入均为正