gpt4 book ai didi

algorithm - 仅使用除法运算符最大化表达式

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:57:33 28 4
gpt4 key购买 nike

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

例子:

对于输入:4 6 8 2 5

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

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

例子:

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

输出应该是可能的最大值!

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

最佳答案

也许这不是编程测试而是数学测试。

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

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

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

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

  • 括号内的第一个数字保持相同的指数
  • 括号内的所有其他内容将更改指数符号

所以最终你影响结果的所有可能性都表达如下:

  • a:指数总是+1
  • b:指数总是-1
  • 所有其他:您可以在括号中选择您想要的指数。

所以解决方案可以如下:

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

也许现在我在这个数学工作之后可以开始编码工作,并且最终的时间复杂度将为 O(n):只需计算负输入的数量,您就会得到答案!

关于algorithm - 仅使用除法运算符最大化表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37863261/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com