如何使用递归最大化和最小化数学表达式?

新手_老

表达式由两个运算符*'和'分隔的数字(0-9)组成+字符之间没有空格。

例子: 1+2*3+4*5

我们需要找出在适当位置使用方括号可获得的最大值和最小值。

最大值:105 = (1+2)*(3+4)*5

最小值: 27 = 1+2*3+4*5

我正在寻找一种递归的方式吗?任何想法,将不胜感激。

克拉斯科维奇

最小化

解决方案的主要思想是:不用考虑如何添加括号,而是考虑哪个操作是最后一个操作。让我们编写一个递归函数minimize(expr)应该怎么办?如果给定一个数字,则应将其返回。否则,我们可以遍历其中的所有运算符,在运算符minimize的左侧和右侧调用part表达式并组合结果。现在我们只需要选择最小值即可。

这是一些伪代码:

int minimize(string expr)
    if isNumber(expr) then // If it is one number, return it.
        return value(expr)
    int res = infinity
    for int i <- 0 .. lenght expr - 1
        if expr[i] == '+' then
            res = min(res, minimize(expr[0 .. i - 1]) +
                           minimize(expr[i + 1 .. length expr - 1])
        if expr[i] == '*' then
            res = min(res, minimize(expr[0 .. i - 1]) * 
                           minimize(expr[i + 1 .. length expr - 1])
    return res

最大化

几乎相同,但在每一步中我们都应采用最大值而不是最小值。

为什么正确?当我们将非负数相乘并相加时,操作数越大(越小),结果就越大(越小)。

我们还可以使用记忆来避免对相同表达式重复两次(或多次)重新计算结果,并获得多项式时间复杂度。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

最小化盒子和最大化对象的算法

来自分类Dev

删除最小化和最大化按钮

来自分类Dev

WPF最小化和最大化

来自分类Dev

最小化和最大化<div>

来自分类Dev

如何最小化启动程序,并最大化还原?

来自分类Dev

你如何使用 CSS 为我的网站制作最小化、最大化和关闭按钮

来自分类Dev

如何在Ubuntu 18.04中删除最小化,最大化和关闭按钮?

来自分类Dev

如何最大化,最小化和使uib模式可拖动?

来自分类Dev

如何从终端关闭,最小化和最大化指定窗口?

来自分类Dev

如何在Gnome 3中恢复最小化和最大化按钮

来自分类Dev

如何从终端关闭,最小化和最大化指定窗口?

来自分类Dev

如何在Gnome 3中恢复最小化和最大化按钮

来自分类Dev

如何在Ubuntu 18.04中删除最小化,最大化和关闭按钮?

来自分类Dev

(Lubuntu)如何向左移动,最小化和最大化

来自分类Dev

如何在Android中最小化和最大化页面?

来自分类Dev

如何最大化和最小化 Swing 中 JPanel 内的 JTable?

来自分类Dev

如何使用GridSearchCV(python)最大化或最小化带有参数的函数?

来自分类Dev

从最大化状态还原窗口时,翡翠缺少关闭,最大化和最小化按钮

来自分类Dev

如何始终显示其窗口上的关闭,最小化和最大化按钮并保持全局菜单?

来自分类Dev

如何始终显示其窗口上的关闭,最小化和最大化按钮并保持全局菜单?

来自分类Dev

如何在MATE中移动窗口标题栏图标以最大化,最小化和靠近左侧?

来自分类Dev

如何使标题栏,最小化按钮和最大化按钮在javascript中的网页上不可见?

来自分类Dev

如何在最大化和最小化WindowState上打开两个相同的Winform?

来自分类Dev

什么事件用于最大化/最小化?

来自分类Dev

卸下意见最小化/最大化按钮

来自分类Dev

或工具最大化/最小化OR / XOR

来自分类Dev

FVWM的Windows按钮(最大化最小化...),主题

来自分类Dev

最小化最大化窗口后偏移鼠标

来自分类Dev

最小化最大化不起作用

Related 相关文章

  1. 1

    最小化盒子和最大化对象的算法

  2. 2

    删除最小化和最大化按钮

  3. 3

    WPF最小化和最大化

  4. 4

    最小化和最大化<div>

  5. 5

    如何最小化启动程序,并最大化还原?

  6. 6

    你如何使用 CSS 为我的网站制作最小化、最大化和关闭按钮

  7. 7

    如何在Ubuntu 18.04中删除最小化,最大化和关闭按钮?

  8. 8

    如何最大化,最小化和使uib模式可拖动?

  9. 9

    如何从终端关闭,最小化和最大化指定窗口?

  10. 10

    如何在Gnome 3中恢复最小化和最大化按钮

  11. 11

    如何从终端关闭,最小化和最大化指定窗口?

  12. 12

    如何在Gnome 3中恢复最小化和最大化按钮

  13. 13

    如何在Ubuntu 18.04中删除最小化,最大化和关闭按钮?

  14. 14

    (Lubuntu)如何向左移动,最小化和最大化

  15. 15

    如何在Android中最小化和最大化页面?

  16. 16

    如何最大化和最小化 Swing 中 JPanel 内的 JTable?

  17. 17

    如何使用GridSearchCV(python)最大化或最小化带有参数的函数?

  18. 18

    从最大化状态还原窗口时,翡翠缺少关闭,最大化和最小化按钮

  19. 19

    如何始终显示其窗口上的关闭,最小化和最大化按钮并保持全局菜单?

  20. 20

    如何始终显示其窗口上的关闭,最小化和最大化按钮并保持全局菜单?

  21. 21

    如何在MATE中移动窗口标题栏图标以最大化,最小化和靠近左侧?

  22. 22

    如何使标题栏,最小化按钮和最大化按钮在javascript中的网页上不可见?

  23. 23

    如何在最大化和最小化WindowState上打开两个相同的Winform?

  24. 24

    什么事件用于最大化/最小化?

  25. 25

    卸下意见最小化/最大化按钮

  26. 26

    或工具最大化/最小化OR / XOR

  27. 27

    FVWM的Windows按钮(最大化最小化...),主题

  28. 28

    最小化最大化窗口后偏移鼠标

  29. 29

    最小化最大化不起作用

热门标签

归档