算法设计与分析:枚举和递推的运用 ————双关系递推数列

头歌实验

第一关:双关系递推数列

任务描述

本关任务:运用枚举和递推的基本思想,通过编程计算出双关系递推数列。设集合 M 定义如下:

1.初始 1∈M;

2.若x∈M,则有2x+1∈M,5x−1∈M;

3.再无其它的数属于M。

试求集合M中的元素从小到大排列后所得序列的第n项,其中n<10001。

枚举算法的两种框架

枚举的本质就是从所有的备选答案中去查询正确的解。一般的,使用枚举算法需要满足两个基本条件:

  • 备选答案的数量是确定的或是有限个数的;
  • 备选答案的范围在求解之前也应该是确定的。

枚举算法有两种常见的框架:区间枚举和递增枚举。

区间枚举的主要思想是对于一个给定的闭区间,从该区间的下限一直逐个枚举到该区间的上限;

递增枚举的主要思想是从给定的枚举起点开始,一直逐个枚举,直到找到满足条件的解,程序结束。

递推算法的实施步骤

递推的定义:给定一个数的序列H0​,H1​,...,Hn​,...,若存在整数n0​,使当n>n0​时,可以用等号(或大于号、或小于号)将Hn​与其前面的某些项Hi​,i∈[0,n0​]联系起来,这样的式子就叫做Hn​的递

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值