Algorithm 仅使用除法算子最大化表达式

Algorithm 仅使用除法算子最大化表达式,algorithm,discrete-mathematics,Algorithm,Discrete Mathematics,问题是,我必须找到一种算法,只需在某些地方放上括号,就可以最大化n个整数的表达式(它们可以是负数)。我不能改变数字的顺序 例如: 输入:46825 输出应为:4/(6/8/2/5) 我们的目标是用括号将给定表达式的结果最大化。在某些情况下,根本不需要放括号 例如: 输入:8-63-2-45 产出:8/-6/3/-2/-4/5 输出应该是可能的最大值 我本来想用递归找到所有的可能性,但我的解决方案没有得到教授的批准(他说有一个更简单更快的解决方案!),现在当我的截止日期过去后,我正在寻求直接的帮助

问题是,我必须找到一种算法,只需在某些地方放上括号,就可以最大化n个整数的表达式(它们可以是负数)。我不能改变数字的顺序

例如:

输入:46825

输出应为:4/(6/8/2/5)

我们的目标是用括号将给定表达式的结果最大化。在某些情况下,根本不需要放括号

例如:

输入:8-63-2-45 产出:8/-6/3/-2/-4/5

输出应该是可能的最大值


我本来想用递归找到所有的可能性,但我的解决方案没有得到教授的批准(他说有一个更简单更快的解决方案!),现在当我的截止日期过去后,我正在寻求直接的帮助

也许这不是一个编程测试,而是一个数学测试

假设您的输入是:a b c d e f。。。z

考虑一下,如果不加任何括号,结果可以写成

a^+1*b^-1*c^-1*d^-1。。。z^-1

当你放入任何括号对时,你会得到:

  • 括号内的第一个数字保持相同的指数
  • 括号内的所有其他符号都将更改指数符号
因此,最终,您影响结果的所有可能性通过以下方式表达:

  • 答:指数总是+1
  • 指数总是-1
  • 所有其他:可以使用括号选择所需的指数
因此,解决方案如下所示:

  • 查看输入符号并定义结果符号(负数的偶数或奇数计数)
  • 如果结果必须是肯定的
    • 那么你的任务就是获得最高的绝对值
    • 在这种情况下,解决方案是a/(b/c/d/…z)
    • 接下来是
      • a固定在分子上
      • b固定在分母上
      • 我们把b除以最可能的值,所以分母的绝对值可能最小
      • 因此,结果的绝对值将是可能的最高值
  • 如果结果是否定的
    • 然后,您的任务是获得最低的绝对值
    • 在这种情况下,解决方案是a/b/c/d/…z(无括号)
    • 接下来是
      • a固定在分子上
      • 我们把a除以最可能的,所以我们得到了最小可能的绝对值

也许现在我完成了这个数学工作,编码工作就可以开始了,由此产生的时间复杂度将是O(n):只需计算负输入的数量,就可以得到答案了

发布被拒绝的解决方案?我不清楚你到底可以做什么,目标是什么。我想唯一的算术运算是除法。你能添加任意数量的括号吗?你想最大化什么?结果的价值?是的,我应该使结果的价值最大化。对不起,解释得不好!提示:在最优解中完成的最后一个除法(对应于最优AST的根)必须出现在1个数字之后,或出现在2个数字之后,或出现在…,或出现在n-1个数字之后。让它出现在1之后,看看我们能做得多好