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

Need program to automatically find number X using basic mathematical operations and 6 random numbers

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

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

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

如果你问的是一个你需要求解的随机方程,你的程序可以像你想的那样求解它。例子: (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 步使用公式

Postfix notation 避免了使用括号带来的复杂性。它允许您将方程建模为

  1. 六个数字的每个排列(总共6! = 720个排列),然后是
  2. 五个运算符的每个组合,其中每个运算符是四个选项之一(总共 4^5 = 1024 个组合)

可能的方程总数为720*1024 = 737280。所以我认为没有理由使用遗传算法,你可以简单地尝试所有的可能性。找到最佳后缀解决方案后,您需要使用适当的括号转换为中缀。