×

遗传算法matlab 算法 matlab

如何用matlab解决多元遗传算法问题?python 题目:用递归算法实现将一个十进制数n转换为十六进制数例如,输入1903

admin admin 发表于2022-06-16 07:13:04 浏览125 评论0

抢沙发发表评论

如何用matlab解决多元遗传算法问题


如何用matlab解决多元遗传算法的极值问题?可以按下列步骤做

1、首先,建立自定义带条件的最大值目标函数文件,ga_fun.m

if x(1)+x(2)》=-1

y=-(exp(-0.1*(x(1)^4+x(2)^4))+ exp(cos(2*pi*x(1))+cos(2*pi*x(2)))

else

y=inf

end

式中:x=x(1),y=x(2)

2、利用ga遗传算法工具箱求解

3、在工具箱中,Fitness function项输入@ga_fun;Number of variables项输入2;Lower项输入[-1,2];Upper项输入[2,1];

4、点击Start按钮,运行可以得到 fmax(0,0)值(Objective function value)。说明这里负号是最大值的标志

运行界面


python 题目:用递归算法实现将一个十进制数n转换为十六进制数例如,输入1903


def func(n):

    if n》0:

        func(n//16)

        print(’0123456789ABCDEF’[n%16],end=’’)

    

n=int(input())

func(n)


二进制转八进制的算法


把二进制从低位到高位依次三个一组,最后不够的高位补0, 再分别算成十进制数就可以了
如:
0111 1001 0110

分组

011 110 010 110

计算

3626

前面加0以标识是8进制

03626

扩展资料:

进制转换是人们利用符号来计数的方法。进制转换由一组数码符号和两个基本因素“基数”与“位权”构成。

基数是指,进位计数制中所采用的数码(数制中用来表示“量”的符号)的个数。

位权是指,进位制中每一固定位置对应的单位值。

二进制---》八进制

(11001.101)(二)

整数部分:从后往前每三位一组,缺位处用0填补,然后按十进制方法进行转化, 则有:

001=1

011=3

然后我们将结果按从下往上的顺序书写就是:31,那么这个31就是二进制11001的八进制形式

参考资料:百度百科-进制转换