当前位置: 首页 > news >正文

组合数学原理与例题

目录

一、前言

二、计数原理

1、加法原理

2、分割立方体(lanqiaoOJ题号1620)

3、乘法原理

4、挑选子串(lanqiaoOJ题号1621)

5、糊涂人寄信(lanqiaoOJ题号1622)

6、战斗吧N皇后(lanqiaoOJ题号1623)

三、鸽巢原理

1、鸽巢原理概念

2、小蓝吃糖果(lanqiaoOJ题号1624)

四、二项式定理与杨辉三角

1、概念

2、杨辉三角形(2021年省赛,lanqiaoOJ题号1457)


一、前言

本文主要讲了计数原理、鸽巢原理、杨辉三角的概念与相关编程题。

二、计数原理

1、加法原理

  • 加法原理:集合 S 被分成两两不相交的部分 S1、S2、S3、..、Sm,那么 S 的对象数目等于:|S| = |S1| + |S2| + |S3| + ... + |Sml
  • 例:一个学生想学一门数学课,一门文化课,但不能同时选,现在从 4 门数学课和 4 门文化课中选,一共有 4+4=8 种方法选一门课。
  • 加法原理的关键是将计数分解为若干个独立(不相容)的部分,保证既不重复也不遗漏地进行计数。

2、分割立方体(lanqiaoOJ题号1620)

【题目描述】

一个立方体,边长为 n,分割成 n×n×n 个单位立方体。任意两个单位立方体,或者有 2 个公共点,或者有 4 个公共点,或者没有公共点。请问,没有公共点和有 2 个公共点的立方体,共有多少对?

【输入描述】

一个整数n, 1<=n<=30

【思路】

反过来计算,先算出有 4 个公共点的立方体有多少对,然后用总对数减去。分几种情况讨论:

1) 正方体和周围 3 个正方体相邻,这种情况共有 8 个,就是顶角上的 8 个,总个数 3×8;

2) 正方体和周围 4 个正方体相邻,这种情况共有 (n-2)×12 个,总个数 4×(n-2)×12;

3) 正方体和周围 5 个正方体相邻,这种情况共有 6×(n×n-4×n+4) 个,总个数 5×6×(n×n-4×n+4);

4) 正方体和周围 6 个正方体相邻,这种情况共有 (n×n×n-n×n×6+n×12-8) 个,总个数 6×(n×n×n-n×n×6+n×12-8);

最后把这 4 个情况求和再除以 2。

正方体一共 n^3 个,共有 n^3(n^3-1)/2 种关系。

n=int(input())
if n==1:print(0)    #边长为1时特判
else:sum=n*n*n*(n*n*n-1)//2     #总数edge3=8ans3=3*edge3edge4=(n-2)*12ans4=4*edge4edge5=n*n-4*n+4ans5=5*6*edge5edge6=n*n*n-n*n*6+n*12-8ans6=6*edge6print(sum-(ans3+ans4+ans5+ans6)//2)

3、乘法原理

  • 令 S 是对象的有序对 (a,b) 的集合,其中第一个对象 a 来自大小为 p 的一个集合,对于对象 a 的每个选择,对象 b 有 q 个选择,那么 S 的大小:ISI-p×q
  • 例:中性笔的长度有 3 种,颜色有 4 种,直径有 5 种。不同种类的中性笔有:3×4×5=60 种。
  • 例:3^4×5^5×7^2×11^3的正整数因子有多少?  答: 这是算数基本定理的概念。3 有 0-4 这 5 种选择,5 有 6 个选择,7 有 3 个选择,11 有 4 个选择,因子总数是 5×6×3×4=360 种。

【排列数】

排列是有序的。

  • 不可重复排列数:从 n 个不同的物品中取出 r 个,排列数为:
  • P(n, r) = n(n- 1)(n - 2)...(n-r+1) = n!/(n-r)!
  • 可重复排列数,从 n 个不同的物品中可重复地取出 r 个的排列数为:n^r

【组合数】

排列是有序的,组合是无序的。如果 S 中的元素都不相同,组合数:

4、挑选子串(lanqiaoOJ题号1621)

【题目描述】

有 n 个数,和一个整数 n。从这 n 个数选出一个连续子串,要求这个子串里面有 k 个数要大于等于 m。问一共能选出多少个子串。显然子串个数要大于等于 k 个。

【输入描述】

第一行是 3 个整数 n、m、k。第二行是 n 个整数 a1、a2、...、an,表示序列。2<=n<=200000,1<=k<=n/2,1<=m, ai<=10^9

【输出描述】

输出一个整数表示答案。

【思路】

一个个地输入 ai,直到输入的数字里,大于 m 的数够 k 个,就可以开始统计了。

1)若正好到 k 个数,情况总数是:第一个大于 m 的位置 i(之前),乘以 i(当前) 以后的个数,相当于求出了这一段区间的总个数。

2)大于 k 个后,怎么求出以后的序列个数而且保证不重复呢?从前往后推理,用倒数第二个位置-倒数第一个位置的差,乘上后面的个数。(这句话需要自己琢磨一下,讲得并不清晰,最好能举一个具体的例子来说明一下)

n,m,k=map(int,input().split())
a=[0]+list(map(int,input().split()))
sum=0
d=[0]*(n+1)
t=0
for i in range(n+1):if a[i]>=m:t+=1d[++t]=i    #d[]: 比m大的数字所在位置。这里的++没有任何意义,python并无自增和自减if t>=k:    #首先统计出k个比m大的if t==k:sum+=d[1]*(n-i+1)else:sum+=(d[t-k+1]-d[t-k])*(n-i+1)
print(sum)

5、糊涂人寄信(lanqiaoOJ题号1622)

【题目描述】

有一个糊涂人,写了 n 封信和 n 个信封,到了邮寄的时候,把所有的信都装错了信封。求装错信封可能的种类数。

【输入描述】

每行输入一个正整数 n,表示一种情况。(n<20)

【输出描述】

输出相应的答案。

【思路】

题目建模为:有 1~n 个数字,分别放在 n 个位置,问都放错的情况有多少种。

用 DP 来做,定义 dp[],dp[i] 表示数字 1~i 都放错的种类数。dp[n] 是答案。

下面考虑状态转移方程,从 1~i 递推到 i。

数字 i 如果放错,有 i-1 个位置可以放,假设其放在第 k 个位置。对于数字 k,可以放在 i 位置也可以不放在 i 位置。

如果 k 放在 i 位置,那么对于剩下 i-2 个数字放的次数,就是 i-2 个数字都放错的方法数 dp[i-2]。

如果 k 不放在 i 位置,和 i-1 个数字放错的情况相同,为 dp[i-1]。

状态转移方程:dp[i] = (i-1)*(dp[i-1]+dp[i-2])

  • 注意本题的输入:没有明确终止
  • 第 6 行处理了这种情况。
import sys
def f(n):if n==0 or n==1:return 0elif n==2:return 1else:return (n-1)*(f(n-1)+f(n-2))
for n in sys.stdin:     #读入n,和C++代码的while(cin>>n)功能一样n=int(n)print(f(n))

6、战斗吧N皇后(lanqiaoOJ题号1623)

【题目描述】

在一个 N*M 的棋盘中,存在多少种方式使得两个皇后可以互相攻击。

【输入】

输入有若干行,每行两个数 N,M (1<=N,M<=106)

【输出】

对于每组测试数据输出一行表示答案

【思路】

两个皇后如果能攻击,位于同一行、同一列、同一对角线。

设矩阵为 n*m,前 2 者的可能性是 (m+n-2)*n*m。(同一行:n*m*(m-1);同一列:m*n*(n-1))

其他情况请自己思考。(对角线情况)

注意本题的输入没有明确终止,且每行读取 2 个数。第 2~4 行处理了这种输入的情况。

import sys
for line in sys.stdin:      #读多个数,和C++的while(cin>>n>>m)功能一样n=int(line.split()[0])m=int(line.split()[1])if n>m:n,m=m,nif n==1:print(m*(m-1))continueans=m*n*(m+n-2)ans+=2*(n-2)*(n-1)*(2*n-3)//3ans+=2*(m-n+1)*n*(n-1)print(ans)

三、鸽巢原理

1、鸽巢原理概念

鸽巢原理,又称抽屉原理。

鸽巢原理:把 n+1 个物体放进 n 个盒子,至少有一个盒子包含 2 个或更多的物体。

例:在370人中,至少有2人生日相同;

答:把365天看成365个抽屉。把365人放进365个抽屉,不管怎么放,抽屉里面都有人了。

例:n个人互相握手,一定有2个人握手次数相同 

答:每人跟其他人握手,最少可以是 0 次,最多可以是 n-1 次。

如果握手最少的是 0 次,那么剩下的 n-1 人中,握手最多的人不会超过 n-2 次。0~n-2 共 n-1 种情况。

如果握手最少的张三是 1 次,那么剩下的 n-1 人中,握手最多的李四除了跟张三握手一次,跟其他 n-2 人最多握手 n-2 次,李四最多握手 n-1 次。1~n-1 共 n-1 种情况。

如果握手最少的张三是 2 次,那么剩下的 n-1 人中,握手最多的李四除了跟张三握手一次,跟其他 n-2 人最多握手 n-2 次,李四最多握手 n-1 次。

2~n-1 共 n-2 种情况。

所以握手次数最多有 n-1 种情况,最少只有 1 种情况。

把最多的 n-1 种情况看成 n-1 个抽屉,n 个人放进这 n-1 个抽屉,至少有一个抽屉里面有 2 人。

2、小蓝吃糖果(lanqiaoOJ题号1624)

【题目描述】

Gardon有 n 种糖果,每种数量已知。Gardon 不喜欢连续 2 次吃同样的糖果。问有没有可行的吃糖方案。

【输入】

第一行是整数 N,O<n<1000000,第二行是 n 个数,表示 n 种糖果的数量 mi,0<mi<1000000

【输出】

输出一行,包含一个 "Yes" 或 "no"。

【思路】

鸽巢原理,用 “隔板法” 求解。

找出最多的一种糖果,把它的数量 K 看成 K 个隔板,隔成 K 个空间(把每个隔板的右边看成一个空间);其它所有糖果的数量为 S。

最多的一种糖果,把它的数量 K 看成 K 个隔板,隔成 K 个空间 (把每个隔板的右边看成一个空间);其它所有糖果的数量为 S。

1)如果 S<K-1,把 S 个糖果放到隔板之间,这 K 个隔板不够放,必然至少有 2 个隔板之间没有糖果,由于这 2 个隔板是同一种糖果,所以无解。

2)S>=K-1时,肯定有解。其中一个解是:把 S 个糖果排成一个长队,其中同种类的糖果是挨在一起的,然后每次取 K 个糖果,按顺序一个一个地放进 K 个空间。由于隔板数量比每一种糖果的数量都多,所以不可能有 2 个同样的糖果被放进一个空间里。把 S 个糖果放完,就是一个解,一些隔板里面可能放好几种糖果。

n=int(input())
a=list(map(int,input().split()))
if sum(a)-max(a)<max(a)-1:print("No")
else:print("Yes")

四、二项式定理与杨辉三角

1、概念

杨辉三角:排列成如下三角形的数字

每个数是它上面 2 个数的和。 

求杨辉三角第 n 行的数字,可以模拟这个推导过程,逐级递推,复杂度 O(n^2)。用数学公式计算,可以直接得到结果,这个公式是 (1 +x)^n。

 二项式系数就是 (1+x)^n 展开后第 r 项的系数。

理解:(1+x)^n 的第 r 项,就是从 n 个 x 中选出 r 个,这就是组合数的定义

当 n 较大,且需要取模时,二项式系数有两种计算方法:

1)递推公式:

公式是杨辉三角的定义,即 “每个数是它上面 2 个数的和” 。计算复杂度是 O(n^2)。

2)用逆直接计算因为输出取模,那么不用递推公式,直接用公式计算更快。不过,由于除法不能直接取模,需要用到逆。用逆计算二项式系数,有:

用逆计算二项式系数,复杂度是 O(n) 的。

2、杨辉三角形(2021年省赛,lanqiaoOJ题号1457)

【题目描述】

如果我们按从上到下、从左到右的顺序把杨辉三角形的所有数排成一列,可以得到如下数列:1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1, ...。给定一个正整数 N,请你输出数列中第一次出现 N 是在第几个数?

【输入描述】

输入一个整数 N。 N<=1000000000

【输出描述】

输出一个整数表示答案。

  • 直接计算杨辉三角的每个数,然后推导出 N 的位置。上一行的 2 个数相加得下一行的一个数。例如上一行是 b[0]~b[k],下一行是 a[0]~a[k+1],那么 a[i] = b[i-1] + b[i]。
  • 推算过程只用一个数组完成,和 DP 的自我滚动数组的原理一样,即 a[i] = a[i-1] + a[i]
def f():n=int(input())a=[0]*100050sum=0           #sum等于1~line行的数字个数line=0sum,a[0]=1,1if n==1:print(1)returnfor line in range(1,50000):     #line: 杨辉三角的第line行for i in range(line,0,-1):  #倒过来循环,和DP的自我滚动数组的原理一样a[i]=a[i-1]+a[i]        #上一行的2个数相加得下一行的一个数if a[i]==n:print(sum+line-i+1)returnsum+=(line+1)               #1~line行的数字个数。每行比上一行多一个,累加
f()

以上,组合数学原理与例题

祝好

相关文章:

组合数学原理与例题

目录 一、前言 二、计数原理 1、加法原理 2、分割立方体&#xff08;lanqiaoOJ题号1620&#xff09; 3、乘法原理 4、挑选子串&#xff08;lanqiaoOJ题号1621&#xff09; 5、糊涂人寄信&#xff08;lanqiaoOJ题号1622&#xff09; 6、战斗吧N皇后&#xff08;lanqiaoO…...

【机器学习 深度学习】通俗讲解集成学习算法

目录&#xff1a;集成学习一、机器学习中的集成学习1.1 定义1.2 分类器(Classifier)1.2.1 决策树分类器1.2.2 朴素贝叶斯分类器1.2.3 AdaBoost算法1.2.4 支持向量机1.2.5 K近邻算法1.3 集成学习方法1.3.1 自助聚合(Bagging)1.3.2 提升法(Boosting)1.3.2.1 自适应adaboost1.3.3 …...

汉字----dgfont

Abstract 字符生成是一个具有挑战性的问题,特别是对于一些由大量字符组成的书写系统,近年来受到了广泛的关注。然而,现有的字体生成方法通常是在监督学习中。它们需要大量的配对数据,这是劳动密集型和昂贵的收集。此外,常见的图像到图像转换模型通常将风格定义为纹理和颜…...

C# chart绘图 鼠标响应

1、图形自动滚动设置 chart1.ChartAreas[0].AxisX.Maximum 横坐标显示区域最大值 chart1.ChartAreas[0].AxisX.Minimum 横坐标显示区域最小值 显示宽度 chart1.ChartAreas[0].AxisX.Maximum - chart1.ChartAreas[0].AxisX.Minimum chart1.ChartAreas[0].AxisX.Maximum x_d…...

结构体与引用

1.结构体基本概念结构体属于用户自定义的数据类型&#xff0c;允许用户存储不同的数据类型2.结构体定义和使用语法: struct 结构体 { 结构体成员列表 };通过结构体创建变量的方式有三种:struct 结构体名 变量名struct 结构体名 变量名 { 成员1值&#xff0c;成员2值...}定义结构…...

13.罗马数字转整数

罗马数字包含以下七种字符: I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如&#xff0c; 罗马数字 2 写做 II &#xff0c;即为两个并列的 1 。12 写做 XII &#xff0c;即为 X II 。 27 写做 XX…...

JVM垃圾回收机制

垃圾回收机制&#xff08;GC&#xff09; 内存管理 Java的内存管理很大程度指的就是对象的管理&#xff0c;其中包括对象空间的分配和释放。 对象空间的分配&#xff1a;使用new关键字创建对象即可 对象空间的释放&#xff1a;将对象赋值null即可。垃圾回收器将负责所有“不…...

Java File类、IO流、Properties属性类

文章目录一、补充二、File类File类的含义创建多级文件File类的常见方法三、IO流IO流分类输入输出流FileOutputStreamInputStreamInputStream与OutputStream的实例ReaderWriterFileReader和FileWriter的实例缓冲流转换流序列化与ObjectInputStream、ObjectOutputStream打印流Pro…...

MySQL备份恢复(十二)

文章目录1. MySQL数据损坏类型1.1 物理损坏1.2 逻辑损坏2. DBA运维人员备份/恢复职责2.1 设计备份/容灾策略2.1.1 备份策略2.1.2 容灾策略2.2 定期的备份/容灾检查2.3 定期的故障恢复演练2.4 数据损坏时的快速准确恢复2.5 数据迁移工作3. MySQL常用备份工具3.1 逻辑备份方式3.2…...

【Java|golang】1792. 最大平均通过率---封装最小堆

一所学校里有一些班级&#xff0c;每个班级里有一些学生&#xff0c;现在每个班都会进行一场期末考试。给你一个二维数组 classes &#xff0c;其中 classes[i] [passi, totali] &#xff0c;表示你提前知道了第 i 个班级总共有 totali 个学生&#xff0c;其中只有 passi 个学…...

PHP 页面静态化

前言随着网站的内容的增多和用户访问量的增多&#xff0c;网站加载会越来越慢&#xff0c;受限于带宽和服务器同一时间的请求次数的限制&#xff0c;&#xff0c;我们往往需要在此时对我们的网站进行代码优化和服务器配置的优化。一、页面静态化概念静态化定义静态化就是指把原…...

【Python】进制、计算机中的单位、编码、数据类型、索引、字符串切片、字符串的功能方法

一、进制计算机中底层所有的数据都是以 010101 的形式存在&#xff08;图片、文本、视频等&#xff09;。二进制八进制十进制&#xff08;也就是我们熟知的阿拉伯数字&#xff09;十六进制进制转换v1 bin(25) # 十进制转换为二进制 print(v1) # "0b11001"v2 oct(23…...

基于android的无人健身房

需求信息&#xff1a; 1&#xff1a;客户登录&#xff1a;首次登陆必须注册&#xff0c;用户注册完成后可以进入软件查看自己的金额、会员等级、消费和健身时长。 2&#xff1a;计费功能&#xff1a;用户通过软件扫描二维码后即可进入健身房&#xff0c;软件显示欢迎进入健身房…...

带你Java基础入门

首先我们都知道的&#xff0c;Java是一种高级计算机语言,是可以编写跨平台应用软件、完全面向对象的程序设计语言。相对于零基础小白如何更加快速的入门java&#xff1f;小编给大家整理了java300集自学教程视频&#xff0c;非常适合零基础的小伙伴&#xff0c;一周时间实现快速…...

VNCTF 2023 - Web 象棋王子|电子木鱼|BabyGo Writeups

象棋王子 签到题&#xff0c;jsfuck解密 丢到console得到flag 电子木鱼 后面两道都是代码审计&#xff0c;这题是rust&#xff0c;题目给出了源码&#xff0c;下载下来看 关键代码&#xff1a; 由于限制&#xff0c;quantity只能为正数 功德也只能是正数&#xff08;负数的…...

「JVM 编译优化」插入式注解处理器(自定义代码编译检查)

JDK 的编译子系统暴露给用户直接控制的功能相对很少&#xff0c;除了虚拟机即时编译的若干参数&#xff0c;便只有 JSR-296 中定义的插入式注解处理器 API&#xff1b; 文章目录1. 目标2. 实现3. 运行与测试4. 其他应用案例1. 目标 前端编译器在讲 Java 源码编译成字节码时对源…...

一文彻底理解大小端和位域 BIGENDIAN LITTLEENDIAN

一文彻底理解大小端和位域 为什么有大小端 人们一直认为大道至简&#xff0c;就好像物理学上的世界追求使用一个理论来统一所有的现象。为什么cpu存在大小端之分&#xff0c;一言以蔽之&#xff0c;这两种模式各有各的优点&#xff0c;其各自的优点就是对方的缺点&#xff0c…...

面试准备知识点与总结——(虚拟机篇)

目录JVM的内存结构JVM哪些部分会发生内存溢出方法区、永久代、元空间三者之间的关系JVM内存参数JVM垃圾回收算法1.标记清除法2.标记整理3.标记复制说说GC和分代回收算法三色标记与并发漏标的问题垃圾回收器项目中什么时候会内存溢出&#xff0c;怎么解决类加载过程三个阶段何为…...

spring cloud 集成 seata 分布式事务

spring cloud 集成 seata 分布式事务 基于 seata-server 1.6.x 序言 下载 seata-server 准备一个数据库 seata 专门为 seata-server 做存储&#xff0c;如, 可以指定 branch_tabledistributed_lockglobal_tablelock_table 准备一个业务库&#xff0c;比如存放定单&#xff…...

k8s篇之概念介绍

文章目录时光回溯什么是K8SK8S不是什么一、K8S构成组件控制平面组件&#xff08;Control Plane Components&#xff09;kube-apiserveretcdkube-schedulerkube-controller-managercloud-controller-managerNode 组件kubeletkube-proxy容器运行时&#xff08;Container Runtime&…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域&#xff0c;MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步&#xff0c;这两种通讯协议也正在被逐步融合&#xff0c;形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...