需要程序使用基本数学运算和6个随机数自动查找数字X.

时间:2016-12-17 10:10:20

标签: java tree genetic-algorithm postfix-notation

我有一些数字X(0-999)和六个随机数字(< 50)。

我需要程序使用带括号和6个随机数的基本数学运算自动找到数字X(或者如果不能找到X则最接近X的数字)。

有人可以推荐我一种方法来解决这个问题吗?我在某处读到了我应该使用后缀符号和遗传算法,但我对其中任何一个都不太了解。

2 个答案:

答案 0 :(得分:0)

Postfix notation避免了使用括号带来的复杂情况。它允许您将等式建模为

  1. 六个数字的所有排列(总共6! = 720个排列),然后是
  2. 五个运营商的每个组合,其中每个运营商是四种选择之一(4^5 = 1024组合)
  3. 可能的等式总数为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步使用公式