如何写一个函数 f("123")=123+12+23+1+2+3 作为递推关系

用户7127000

我想知道是否有人可以帮助我尝试解决这个问题。

我想f(str)取一串str数字并将所有子串的总和作为数字返回,我想把它写成f一个函数,这样我就可以尝试通过记忆来解决这个问题。

当我凝视时,它并没有向我跳跃

        Solve("1") = 1
        Solve("2") = 2
        Solve("12") = 12 + 1 + 2
        Solve("29") = 29 + 2 + 9
        Solve("129") = 129 + 12 + 29 + 1 + 2 + 9
        Solve("293") = 293 + 29 + 93 + 2 + 9 + 3
        Solve("1293") = 1293 + 129 + 293 + 12 + 29 + 93 + 1 + 2 + 9 + 3
        Solve("2395") = 2395 + 239 + 395 + 23 + 39 + 95 + 2 + 3 + 9 + 5
        Solve("12395") = 12395 + 1239 + 2395 + 123 + 239 + 395 + 12 + 23 + 39 + 95 + 1 + 2 + 3 + 9 + 5
保罗·汉金

你必须分解f成两个功能。

N[i]成为i输入第 th 位数字。T[i]i-1输入的第一个字符的子串的总和B[i]i输入的第一个字符的后缀之和

因此,如果输入是“12395”,则B[3] = 9+39+239+1239, 和T[3] = 123+12+23+1+2+3

递推关系为:

T[0] = B[0] = 0
T[i+1] = T[i] + B[i]
B[i+1] = B[i]*10 + (i+1)*N[i]

最后一行需要解释:第一的后缀i+2字符是所述第一的后缀i+1以字符N[i]所附上的端,以及所述单个字符的字符串N[i]这些的总和(B[i]*10+N[i]*i) + N[i]与 相同B[i]*10+N[i]*(i+1)

还有f(N) = T[len(N)] + B[len(N)]

这给出了一个简短的、线性时间的、迭代的解决方案,您可以将其视为一个动态程序:

def solve(n):
    rt, rb = 0, 0
    for i in xrange(len(n)):
        rt, rb = rt+rb, rb*10+(i+1)*int(n[i])
    return rt+rb

print solve("12395")

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在pl / sql中将123转换为1,2,3?

来自分类Dev

f(123)= 1!+ 2!+ 3!我为这种类型的功能编写了代码,请看一下。我的代码未给出期望的结果

来自分类Dev

如何在python中按顺序编号1、123、12、12等分组

来自分类Dev

将时间 1:23 的数字 123 转换为毫秒

来自分类Dev

为什么 "123".split('') 不等于 [1, 2, 3].join('').split('')

来自分类Dev

movefile()失败,错误2或123

来自分类Dev

用户单击数字时,Objective C文本字段的默认值从“•••••••”到“ 1•••••••”,“ 12•••••”,“ 123••••”

来自分类Dev

用户单击数字时,Objective C文本字段的默认值从“•••••••”到“ 1•••••••”,“ 12•••••”,“ 123••••”

来自分类Dev

如何在scala中将“ Some(123)”转换为123

来自分类Dev

使用另一个字符串作为分隔符拆分字符串(例如从 123:1 拆分 :1)

来自分类Dev

计算递推关系的时间复杂度 f(n) = f(n/2) + f(n/3)

来自分类Dev

我有一个 int 123。如何使用 python 生成字符串“100+20+3”?

来自分类Dev

NUMERIC(5,2)应该为插入的123返回123还是123.00?

来自分类Dev

匹配$ {123 ... 456}并在Java中提取2个数字?

来自分类Dev

过滤类似于 image-123-123 regex 的 url 的一部分

来自分类Dev

如何用正则表达式匹配$ 123 $,$$,$,但不能匹配$ 123?

来自分类Dev

从一个字符中提取一个字符,例如123中的1

来自分类Dev

我有2个文档,我该如何写一个将输出作为单个文档返回的查询

来自分类Dev

如何写一个3字节的Unicode字符作为字符串文字

来自分类Dev

如何在TM4C123GXL(TivaC)启动板上使用I2C

来自分类Dev

如何在TM4C123GXL(TivaC)启动板上使用I2C

来自分类Dev

如何在mongodb查询中编写SELECT FROM testing WHERE int_col + int_col2 > 123?

来自分类Dev

如何实例化Lotus 123应用程序

来自分类Dev

SQLite如何将字符串'123 [45] / 67 [8] / 9 [10]'转换为'123/67/9'

来自分类Dev

如何禁用或反转FN键:我想替换为:FN + F1,FN + F2,FN + F3,... FN + F12只需简单地按F1,F2,F3,... F12

来自分类Dev

如何让函数 (f1) 运行一个单独的函数 (f2),但 f2 使用“this”参数?

来自分类Dev

正则表达式匹配> 123并拒绝>> 123

来自分类Dev

WinInet ftp连接错误123

来自分类Dev

如何从函数列表[f1,f2,f3,... fn]组成嵌套函数g = fn(...(f3(f2(f1()))...)

Related 相关文章

  1. 1

    如何在pl / sql中将123转换为1,2,3?

  2. 2

    f(123)= 1!+ 2!+ 3!我为这种类型的功能编写了代码,请看一下。我的代码未给出期望的结果

  3. 3

    如何在python中按顺序编号1、123、12、12等分组

  4. 4

    将时间 1:23 的数字 123 转换为毫秒

  5. 5

    为什么 "123".split('') 不等于 [1, 2, 3].join('').split('')

  6. 6

    movefile()失败,错误2或123

  7. 7

    用户单击数字时,Objective C文本字段的默认值从“•••••••”到“ 1•••••••”,“ 12•••••”,“ 123••••”

  8. 8

    用户单击数字时,Objective C文本字段的默认值从“•••••••”到“ 1•••••••”,“ 12•••••”,“ 123••••”

  9. 9

    如何在scala中将“ Some(123)”转换为123

  10. 10

    使用另一个字符串作为分隔符拆分字符串(例如从 123:1 拆分 :1)

  11. 11

    计算递推关系的时间复杂度 f(n) = f(n/2) + f(n/3)

  12. 12

    我有一个 int 123。如何使用 python 生成字符串“100+20+3”?

  13. 13

    NUMERIC(5,2)应该为插入的123返回123还是123.00?

  14. 14

    匹配$ {123 ... 456}并在Java中提取2个数字?

  15. 15

    过滤类似于 image-123-123 regex 的 url 的一部分

  16. 16

    如何用正则表达式匹配$ 123 $,$$,$,但不能匹配$ 123?

  17. 17

    从一个字符中提取一个字符,例如123中的1

  18. 18

    我有2个文档,我该如何写一个将输出作为单个文档返回的查询

  19. 19

    如何写一个3字节的Unicode字符作为字符串文字

  20. 20

    如何在TM4C123GXL(TivaC)启动板上使用I2C

  21. 21

    如何在TM4C123GXL(TivaC)启动板上使用I2C

  22. 22

    如何在mongodb查询中编写SELECT FROM testing WHERE int_col + int_col2 > 123?

  23. 23

    如何实例化Lotus 123应用程序

  24. 24

    SQLite如何将字符串'123 [45] / 67 [8] / 9 [10]'转换为'123/67/9'

  25. 25

    如何禁用或反转FN键:我想替换为:FN + F1,FN + F2,FN + F3,... FN + F12只需简单地按F1,F2,F3,... F12

  26. 26

    如何让函数 (f1) 运行一个单独的函数 (f2),但 f2 使用“this”参数?

  27. 27

    正则表达式匹配> 123并拒绝>> 123

  28. 28

    WinInet ftp连接错误123

  29. 29

    如何从函数列表[f1,f2,f3,... fn]组成嵌套函数g = fn(...(f3(f2(f1()))...)

热门标签

归档