python进阶练习题:Zeckendorf表示【难度:2级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶

编程知识 行业动态 更新时间:2024-06-13 00:22:33

python进阶练习题:Zeckendorf表示【难度:2级】:

斐波那契数是’F(0)= 0,F(1)= 1F(N)= F(N-1)+ F(N-2)为``N> = 2` .接下来的5个值是


F(2)= 1
F(3)= 2
F(4)= 3
F(5)= 5
F(6)= 8

每一个正整数可以写成Fibonacci数的总和.例如,10 = 8 + 2 = 5 + 3 + 2 = 3 + 3 + 2 + 2.显然,这表示是不是唯一的.它成为唯一的,如果我们排除* * 连续Fibonacci数. (这是齐肯多夫定理,首先由Lekkerkerker于1952年证明)在上述的例子中,这排除最后两个表示(包含连续斐波那契数F(4)= 3F(3)= 2)和我们留下与* Zeckendorf表示*10 = 8 + 2.

编写返回给定的整数N的Zeckendorf表示为斐波那契数的递减顺序列表的功能. (返回空列表用于N = 0NoneN.)

提示:贪!

脚注:该Zeckendorf表示被紧密地连接到所述斐波那契编码,见[齐肯多夫定理(https://en.wikipedia/wiki/Zeckendorf%27s_theorem).

编程目标:

def Zeckendorf_rep(n):
    """Return Zeckendorf representation of `n` as decreasing list of Fibonacci numbers summing up to `n`."""
    return [n]


测试样例:

test.assert_equals(Zeckendorf_rep(10), [8, 2])
test.assert_equals(Zeckendorf_rep(100), [89, 8, 3])


最佳答案(多种解法):

点击查看答案

更多关联题目:

python高级练习题:下一个较高值#3【难度:4级】–景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶

交流讨论:

景越Python基础训练营QQ群

欢迎各位同学加群讨论,一起学习,共同成长!

免责申明:

本博客所有编程题目及答案均收集自互联网,主要用于供网友学习参考,如有侵犯你的权益请联系管理员及时删除,谢谢
题目收集至https://www.codewars/
https://www.codewars/kata/zeckendorf-representation

更多推荐

python进阶练习题:Zeckendorf表示【难度:2级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶

本文发布于:2023-04-02 17:48:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/1597bb1264358615680fc8c29ab4702f.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:进阶   难度   练习题   习题   训练营

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!