CSP - J理论(1)
CSP-J理论(1)
目录
本目录中所有标题单击均可以快速跳转哦
一、排列组合与概率
一:排列
排列:n个数的排法,从第1位到第n位,每一个位置有n-i-1种选择,最后把每个位置的选择数相乘,得到:
二:组合
组合:n个数的选法。
组合和排列的区别在于排列看来,(1,2)和(2,1)是两种排列,但在组合看来,(1,2)和(2,1)是一种组合。
所以,组合就是在排列的基础上再/m,比如在n个数里选m个,就是
组合数常见结论:C(n,0)=1,C(n,1)=n,C(n,n)=1,C(n,m)=C(n,n-m)。
三:概率
概率:就是选择物品数量/总数,如probability这个字符串里取字符,取到字符b的概率就是2/字符串的长度11。
四:圆排列
圆排列就是将几个数围成一圈的排列。
如下面这个排列
就是一个圆排列。
圆排列的特点是将圆旋转,仍然是同一个圆排列,如
和
都是同一个圆排列
圆排列的排列数是(n-1)!
五:多重集合的排列
多重集合是指如{1,1,2,3,3}这样的集合。假设这个集合里有n种数,每个数都有无限个,要选出k个,排列数就是
但如果每种数的数量固定,设第一种数的数目为
六:错位排列
错位排列是指第i个位置不是i的排列,如{3,2,1}
错位排列的排列数是
二、二进制
一:数据范围
int类型的数据范围是
unsigned int类型的数据范围是
long long类型的数据范围是
unsigned long long类型的数据范围是
二:原、补、反码
原码的第一位是符号位,用于表示正负,正为0,负为1,其他位就是这个数的二进制
反码是原码除符号位取反(0变1,1变0)
补码是反码+1
三:位运算
x<<y就是将x乘上
&:每一位都为1就是1
|:每一位有1就是1
^:每一位不同就为1,相同为0
~:对每一位进行取反(包括符号位)
lowbit:用于求得一个数二进制下最低位的1代表2的几次方。代码是x&-x
三、递归问题复杂度分析
一:T(n)=2T(n/2)+n
画出递归树
可以发现每一层都是O(n),总复杂度为O(nlogn)。
二:T(n)=2T(n/2)+n^2
画出递归树
把每一层的加在一起,得到
我们把
我们可以发现右边的和无论如何都是小于
三:T(n)=2T(n/2)+sqrt(n)
画出递归树
求和可以得到是
我们把
利用等比数列求和公式,可以得到括号里是
本文来自博客园,作者:_little_cabbage_lcb,转载请注明原文链接:https://www.cnblogs.com/zhaolinze/p/17935622.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现