代码之家  ›  专栏  ›  技术社区  ›  Thiago Belem

基于给定的TestUnit编写函数

  •  1
  • Thiago Belem  · 技术社区  · 16 年前

    我需要编写一个函数来满足此输入->输出列表:

    0 -> 0
    1 -> 1
    3 -> 2
    4 -> 3
    5 -> 5
    7 -> 13
    9 -> 34
    

    f(x)=??

    3 回复  |  直到 15 年前
        1
  •  2
  •   Michael Aaron Safyan    16 年前

    ,则可以执行以下操作:

    switch(input)
         case 0: report 0
         case 1: report 1
         case 3: report 2
         ...
         default: report whatever
    

    如果你想要一个好的解决方案,你可能需要更多的约束。您还可以考虑对函数进行绘图,以查看是否有任何明显的模式,或者显示所涉及的位。了解输入和输出是整数值还是实值(函数应该是连续的还是离散的?)也很有用。没有这些信息,就有点难以帮助。


    显示缺失的数字有助于:

    0->0
    1->1

    3->2
    4->三
    5->5
    6->8
    7->13
    8->21
    9->34

    (这是Fibonnaci数:f(x)=f(x-1)+f(x-2),其中f(0)=0,f(1)=1)。

    附言
    这是一个函数 dynamic programming 或者说回忆录特别有用。

        2
  •  2
  •   Kendall Hopkins    16 年前

    解决者 Eureqa

    round(exp(0.4807*input - 0.799938))

        3
  •  1
  •   Michael Mrozek    16 年前

    click here . 实现这个序列是非常简单的递归操作,但是如果你有问题,可以编辑你的文章,并指定你停留在哪一部分

    推荐文章