我怎样才能用Java创建一个能够改变自己的源代码的程序,或者一个随后要运行的数学函数?
我想创建一个程序,使用随机优化算法来进化数学函数,将两个常量作为输入,并进化一个函数,以便从这两个数字生成特定的答案 假设输入是4和7,我希望答案是230,程序将生成一个函数,从原始输入生成这个答案 我能够生成进化算法,但我不知道如何存储函数信息,如何随机地对其进行变异,以及如何让变异后的函数由java程序执行。这就是所谓的元编程吗?在java中可能吗?我知道我可以存储可能在函数中用作变量的常量。那很容易。但是,如何将运算符和函数(如正弦余弦和tan)存储为可以更改的变量?请不要更改程序源代码,并在运行时重新编译。 评估功能的方法有很多种,有些是:我怎样才能用Java创建一个能够改变自己的源代码的程序,或者一个随后要运行的数学函数?,java,functional-programming,genetic-algorithm,Java,Functional Programming,Genetic Algorithm,我想创建一个程序,使用随机优化算法来进化数学函数,将两个常量作为输入,并进化一个函数,以便从这两个数字生成特定的答案 假设输入是4和7,我希望答案是230,程序将生成一个函数,从原始输入生成这个答案 我能够生成进化算法,但我不知道如何存储函数信息,如何随机地对其进行变异,以及如何让变异后的函数由java程序执行。这就是所谓的元编程吗?在java中可能吗?我知道我可以存储可能在函数中用作变量的常量。那很容易。但是,如何将运算符和函数(如正弦余弦和tan)存储为可以更改的变量?请不要更改程序源代码,
- 你自己的评估者
- 其他评估者,比如
- 你自己的评估者
- 其他评估者,比如
但是:您可能会找到更有效的方法来确定该函数。如果您给我们程序应该创建的函数,我们可以为您提供更多帮助。通常Java不支持元编程。但是会对您有所帮助。一般来说,Java不支持元编程。但是会帮助你的。这可能会有帮助 您可以使用java创建“真正的”插件。这篇文章谈到它: 基本上,创建一个主程序,它允许您编写和执行插件链。插件是你的功能,比如sin,cos。。。因为你可以动态加载真正的插件;您可以创建新的随机插件并将它们添加到您的链中 这可能会有帮助 您可以使用java创建“真正的”插件。这篇文章谈到它:
基本上,创建一个主程序,它允许您编写和执行插件链。插件是你的功能,比如sin,cos。。。因为你可以动态加载真正的插件;您可以创建新的随机插件并将它们添加到您的链中 Java对你来说是必须的吗?可以考虑使用另一种JVM语言,例如Groovy?@ ValtTin认为它们显然能够产生“进化算法”,因此,我怀疑代码>如果语句是解决它们的主要途径。此外,还有一些方法可以在没有if语句的情况下计算表达式,正如Ali和StackOverflowException所指出的。@Teeg我的意思是他不需要“修改源代码”这可以通过使用
if语句来实现
@Vallentin:但这会很糟糕,或者需要更多的if…@StackOverflowException仍然不是重点。重点是你不需要修改代码。Java对你来说是必须的吗?可以考虑使用另一种JVM语言,例如Groovy?@ ValtTin认为它们显然能够产生“进化算法”,因此,我怀疑代码>如果语句是解决它们的主要途径。此外,还有一些方法可以在没有if语句的情况下计算表达式,正如Ali和StackOverflowException所指出的。@Teeg我的意思是他不需要“修改源代码”这可以通过使用if语句来实现
@Vallentin:但这会很糟糕,或者需要更多的if…@StackOverflowException仍然不是重点。重点是您不需要修改代码。