需要程序使用基本数学运算和 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 避免了使用括号带来的复杂性。它允许您将方程建模为
- 六个数字的每个排列(总共
6! = 720
个排列),然后是
- 五个运算符的每个组合,其中每个运算符是四个选项之一(总共
4^5 = 1024
个组合)
可能的方程总数为720*1024 = 737280
。所以我认为没有理由使用遗传算法,你可以简单地尝试所有的可能性。找到最佳后缀解决方案后,您需要使用适当的括号转换为中缀。
我有一些数字 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 避免了使用括号带来的复杂性。它允许您将方程建模为
- 六个数字的每个排列(总共
6! = 720
个排列),然后是 - 五个运算符的每个组合,其中每个运算符是四个选项之一(总共
4^5 = 1024
个组合)
可能的方程总数为720*1024 = 737280
。所以我认为没有理由使用遗传算法,你可以简单地尝试所有的可能性。找到最佳后缀解决方案后,您需要使用适当的括号转换为中缀。