俄罗斯套娃

俄罗斯套娃是一个套一个组成。大的套小的,小的再套更小的。很简单但是蕴含很深的意义。比如数位系统,递归,指数等都有或多或少的联系。

1、数位系统

为了表示一个数量,可以有十进制,二进制,16进制,60进制,24进制,12进制等。但这些进制的核心到底在哪呢?就在俄罗斯套娃这种层级关系上。

每一层可以想象成一个箱子,箱子内包含的数量就是进制。比如包含2个就是2进制,包含12个就是12进制。那么利用这些箱子,就可以封装所有数量。而这些箱子本身又是数量,所以可以说是将数量映射为另一种数量。

比如:100 映射为 1100100

为什么要映射数量?因为世间有些东西表示这些数量很方便,但是表示其它数量却不方便。比如计算机表示二进制数量就方便,比如钟表表示24进制就方便。这样就需要对数量进行封装和转换。

2、递归可以替代循环。在人类逻辑中,循环很好理解,但是其实递归才是循环的本质。它是从另外一个方面来理解问题。

比如for(i=1;i<100;i++)循环。它的递归就是参数in=in-1+1(100>n>=2).

3、x的意义:

y:表示层级。x表示这一层中包含的数量

4、e=lim(1+1/n)n n趋向于无穷 极限为e=2.71

时间: 2024-10-06 00:12:35

俄罗斯套娃的相关文章

俄罗斯套娃信封问题

给定一些标记了宽度和高度的信封,宽度和高度以整数对形式 (w, h) 出现.当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样. 请计算最多能有多少个信封能组成一组"俄罗斯套娃"信封(即可以把一个信封放到另一个信封里面). 说明:不允许旋转信封. 示例: 输入: envelopes = [[5,4],[6,4],[6,7],[2,3]] 输出: 3 解释: 最多信封的个数为 3, 组合为: [2,3] => [5,4] => [

UVA1579 俄罗斯套娃 Matryoshka(区间dp+序列dp)

#include <iostream> #include <cstdio> #include <cstring> using namespace std; const int maxN = 505; int N, a[maxN], dp[maxN][maxN], MAX[maxN][maxN], MIN[maxN][maxN], f[maxN][maxN], F[maxN]; bool b[maxN], rep[maxN][maxN], flag; inline int

数据结构总结

剑指OfferJAVA版 1.      排序算法 稳定性的概念: 假定待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,称这种排序算法是稳定的,否则称为不稳定的. package com.ljl.sort; import org.junit.Test; /** * 七大排序算法 * @author acer * */ public class Sort { private int[] unsorted={1,3,2,8,9,7,6,6,5,3,4};

JavaScript 闭包

1.词法作用域: 简单地说子集能访问父级的变量, 说人话就是变量拿来就用不用传入 2.函数局部变量: 在函数体中以var 声明变量的为局部变量 + 函数传入的参数, 直接写变量名声明的变量是全局变量 3.局部变量生存期: 局部变量在函数函数的执行期间可用,  一旦执行过后,局部变量将不再可用 4.延长局部变量生存期: 现在问题来了,我想要延长局部变量的生存期,怎么办.(因为调用函数不仅仅是为了return, 有时候还需要保存函数中的状态, 或者实现类等等) 5.使用全局变量不好吗: 不好.有时函

TCP/IP解析(一):TCP/IP的工作方式

本文包含以下内容: 1.TCP/IP协议系统 2.OSI模型 3.数据包 4.TCP/IP的交互方式 1.TCP/IP模型的协议层 分为四层: 网络访问层:提供与物理网络连接的接口.根据硬件的物理地址实现数据寻址. 网际层:提供独立于硬件的逻辑寻址. 传输层:为网络提供流量控制.错误控制和确认服务,充当网络应用程序的接口. 应用层:为文件传输.远程控制等提供应用程序. OSI七层模型 物理层:把数据转换为传输介质上的电子流或模拟脉冲,并监视数据的传输. 数据链路层:提供与网络适配器相连的接口,维

GYM 101173 F.Free Figurines(贪心||并查集)

原题链接 题意:俄罗斯套娃,给出一个初始状态和终止状态,问至少需要多少步操作才能实现状态转化 贪心做法如果完全拆掉再重装,答案是p[i]和q[i]中不为0的值的个数.现在要求寻找最小步数,显然要减去一些多余的步数.如果初始的一些链的前端是终止的某一条链的连续的一部分,那么这条链就不用被拆开再连上,这样每一个长度为x的链对答案的贡献就是-2*(x-1),对每条链进行同样的操作之后就是答案 #include <iostream> #include<cstdio> #include<

CSS入门学习

一.What? CSS的全称是CascadingStyle Sheet,汉语意思是"级联样式表".通常又称为"风格样式表(StyleSheet)".它是用来进行网页风格设计的. 比如,在网页的设计中,在HTML页中仅仅增加网页内容,而将网页样式(比如,大到网页的布局结构.小到字体大小等)放在别处,实现了网页的内容和样式相分离,这样,在更改样式时.不影响内容. 能够说,CSS将网页中的内容和样式分离开,让它们各自变化,解除了耦合. 二.CSS的选择器 在CSS里面,有

python学习笔记-Day05-第一部分(再谈装饰器)(递归)

今天又花了多半天来学习装X利器---装饰器, 来详细的讲讲装饰器的用法 还是要说一下,学装饰器之前要先搞清楚什么是函数.装饰器就是对函数进行一个包装,打个比喻来说就是: 假设有一个箱子A,在箱子A的外面又套了一个大箱子,外面的大箱子还起名叫A,以后在找里面的小箱子A的时候,就先去找外面的大箱子A,打开外面的大箱子A之后 在打开内部的小箱子A,这个就是装饰器. 装饰器也是一个函数,至少两层 def outter(func):               #定义函数 outter,参数为一个函数的函

ruby基础教程之rails性能优化

在ruby on rails(http://www.maiziedu.com/course/ruby-px/)中,很多rails程序员会经常忘记考虑性能问题,这会导致网站速度下降,内存占用剧增,Apache频频重启,所以这时就需要进行rails性能优化.具体的优化内容如下: 1,使用Unicorn或者Thin服务器替代默认的webrick. 2,静态资源压缩合并,放到云存储上. 3,同时可以使用rails的Turbolinks,使用js替换title和body,但也带来了js逻辑的变化. 4,A