挑剔数列和递归算法
来源:互联网 发布:广联达预算软件使用 编辑:程序博客网 时间:2024/05/27 16:42
前几天的一道笔试题:
有一种很特别的数列 L(n),定义为:把集合{1,2,3,...,n,1,2,3,...,n}的数字进行重新排列,使得1和1之间的距离为1,2和2之间的距离为2,3和3之间的距离为3,4和4之间的距离为 4 等等。
Python实现,Version 1.0:
输出结果:
放置的数是随机的,所以经常出现递归栈溢出的情况。虽然多试几次还是能获得结果,但是不太理想。
阅读递归资料的时候想到了要加一个redo的操作,改进之后,Version 2.0:
实现方法可以行得通了。
4的输出:
7的输出:
15的输出:
中间有写数字无法输出,比如9:
就是说,我从代码中操作集pop,结果pop为空,redo的数量满足了,相当于撤销还是无法完成该数列,因此,猜想,某些长度是无法生成该数列的。
了解到,该数列是一个挑剔数列,当n∈属于{0, 1, 2, 3 ... n ... }时,length 等于 4n+1 与 4n+2 时,没有该挑剔数列。
以上。
0 0
- 挑剔数列和递归算法
- 编程算法 - 阶乘和Fibonacci数列(递归)
- 斐波那契数列递归和非递归算法
- Fibonacci数列-递归算法
- 斐波那契数列递归算法和非递归算法以及其时间复杂度分析
- 斐波那契数列递归算法和非递归算法
- 斐波那契数列 递归算法和非递归算法
- 斐波那契数列递归算法和非递归算法实现
- 斐波纳契数列非递归算法
- 算法基础:递归---Fibonacci数列
- 递归算法与斐波拉契数列
- Go语言实现Fibonacci数列的两个算法(使用递归和不使用递归)
- 《数据结构、算法与应用》4.(递归和非递归实现斐波那契数列)
- 斐波那契数列的递归和非递归算法
- 斐波那契数列算法分析--递归、非递归和公式法
- 【C++】斐波那契数列前N项的和递归与非递归算法
- 斐波那契数列和二分查找的算法(递归与非递归)
- C语言实现斐波那契数列递归和非递归算法
- 数据倾斜处理
- iOS开发——头像设置及本地沙盒保存,圆形头像显示
- wxWidgets 3.1.0 编译方法
- 杭电1088( Write a simple HTML Browser )
- ExtJs6 将小写数字金额转换成人民币大写金额
- 挑剔数列和递归算法
- 隐马尔科夫模型(HMMs)之五:维特比算法及前向后向算法
- XZ_HTML之HTML框架和 HTML内联框架 iframe
- ubuntu 交叉编译arm linux 内核
- C#编译程序开头namespace
- Android学习笔记036之网络数据解析
- Android MVPBuilder第一篇
- java网络socket编程(六)之HTTP请求/响应报文
- hd 1702 ACboy needs your help again!