我有一些数字X(0-999)和六个随机数字(< 50)。
我需要程序使用带括号和6个随机数的基本数学运算自动找到数字X(或者如果不能找到X则最接近X的数字)。
有人可以推荐我一种方法来解决这个问题吗?我在某处读到了我应该使用后缀符号和遗传算法,但我对其中任何一个都不太了解。
答案 0 :(得分:0)
Postfix notation避免了使用括号带来的复杂情况。它允许您将等式建模为
6! = 720
个排列),然后是4^5 = 1024
组合)可能的等式总数为720*1024 = 737280
。所以我认为没有理由使用遗传算法,你可以简单地尝试所有的可能性。找到最佳后缀解决方案后,您需要使用适当的括号转换为中缀。
答案 1 :(得分:-1)
如果你问一个随机方程你需要解决你的程序可以像你一样解决它。例: (10x + 5x + 8)* 8 =(x + 2)^ 2 + 3 第1步计算括号:80x + 40x + 64 =x²+ 4x + 4 + 3 步骤2将所有内容向左移动:80x + 40x + 64 - x² - 4x + 4 +3 步骤3简化:-x²+ 116x + 71 第4步使用公式