一、引论,《组合数学(第4版)》卢开澄 卢华明

news2025/1/24 6:07:28

零、前言

发现自己数数题做的很烂,重新学一遍组合数学吧。

参考卢开澄 卢华明 编著的《组合数学(第4版)》,只打算学前四章。


通过几个经典问题来了解组合数学所研究的内容。

一、幻方问题

据说大禹治水之前,河里冒出来一只乌龟,龟背上是一个3*3的矩阵,每个格子里面有若干点,行和列和对角线和都相等且为15。然后大禹就以15为周期来治水了。

对于一个nxn的矩阵,满足行和,列和,主副对角线和都相等,那么这个矩阵就是一个n阶幻方

最早研究幻方的是南宋的杨辉(杨辉三角那个),他罗列了3x3、4x4、5x5甚至10x10的幻方。

定义:行/列整数和为该幻方的幻和。

n 阶幻方的幻和为 (n^2 + 1) * n / 2

并非任意阶幻方都有解法:

2阶幻方就不存在:

会推出某两个元素相等,但是a b c d 互不相同。

大约30年前,德国数学家L · Bieberbach证明:

对于任意大于等于 3 的数 n,都存在一个 n 阶的幻方阵。

杨辉提出了一种三阶幻方的构造方法:

  • 123、456、789 斜着摆三列,得到一个菱形
  • 交换菱形对角元素,挤压成一个正方形,就是一个三阶幻方

但是对于更高阶该如何构造呢?

法国一位数学家研究了奇数阶幻方的一般化构造方法:

  • 记第 i 行 第 j 列 方格坐标为 (i, j),0 索引
  • 初始将 1 放在第 0 行的中间 (0, n / 2)
  • 对于 当前要放置的棋子,上一枚棋子的坐标为 (x, y)
  • 我们尝试放在 ((x - 1) % n, (y + 1 % n))
    • 如果已经被占用,则放在 ((x + 1) % n, y)
  • 证明略

事实上,我们可以将幻方分成三类:

  • 奇数阶幻方
  • 4m 阶幻方
  • 4m + 2 阶幻方

每一类都有对应的构造算法。

然而我们发现杨辉构造的三阶幻方和奇数阶构造算法得到的幻方不同,但是把幻方上下翻转就相同了。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这让我们思考,对于n阶幻方有多少种构造方法?

三阶幻方,如果认为翻转旋转一样的话,只有一种。

四阶幻方,如果认为翻转旋转一样的话,有880种,否则有7040.

五阶已经有 2亿七千多万个了。

六阶数学家大概确定了其数量落在某个范围,七阶已经无从得知了……

可见,计数问题是组合数学中的一大难题。

算竞中经常遇到这样一类构造题:行列乘积、gcd、异或等限制来构造矩阵,这其实都是幻方的变形。

二、羊皮纸卷

阿基米德在羊皮纸上的论文流落到寺庙,僧人清洗后重新抄写经文。

2003年,科学家通过X光照射,发现羊皮纸经文下面的阿基米德关于十四巧板的论文。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

一位数学家以此为题,设置100美元奖项,谁先解出来给谁。

然后计算机学家借助计算机设计算法解出来是17152种,后来数学家利用排列组合的方式,也得到了正解。阿基米德无意间开创了西方世界的组合数学的篇章。

1666年,莱布尼茨研究概率学时,生造了**组合数学(Combinatorics)**这个单词。

三、手机密码安全吗

平时在学校基本都是翘课,有一次遇到学习通4位密码签到,我一看乐了,整个程序暴力枚举,几乎一瞬间就签上到了。

为什么这么快呢?

4位密码,每位10种可能,也就10000种,计算机基本几毫秒就能枚举完所有可能。

很多人手机都有3 * 3 的手势密码,其实手势密码可以看作是从一个格子出发得到的一条路径,我们怎么计数呢?

正难则反,总情况 - 不合法路径。

不合法的定义:如果选择的两个点连成的线段,穿越了第三个点,如果这第三个点,之前没有被连过,则不合法;反之,则合法

通过计算机程序得到一共有 389112 种方案。

可见,如果手机没有输入次数限制的话,一部手机很快就能被破解。

计数问题是一类很常见的问题,但是并不简单,如何做到不重不漏,是一个难点。

四、世界杯引出的问题

n 支球队参加比赛,一共需要多少场复赛?

比较笨的方法:局面抽象成节点,代表当前剩下的队伍集合,挑出两个队伍比赛,扔掉一个败者,得到新的节点,最后节点的数目就是总比赛场数。

但事实上,每进行一场比赛都会产生一个败者,一个胜者,我们最后只有一个冠军,所以要进行n - 1场比赛。

可见同样是计数问题,不同方法的效率是天差地别的。

五、哥尼斯堡七桥问题

即欧拉路径问题:欧拉图,欧拉通路,欧拉回路,Hierholzer算法详解-CSDN博客

沿着桥走,每个桥恰好走一次有多少种走法?

我们能直接取排列数作为答案吗?

显然不能,太多非法解了。

不过我们可以借助定理 + 计算机枚举来求解。

通过定理,我们保证枚举方案的合法性,可见有技巧的枚举可以更加精巧简洁。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2281255.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LabVIEW太阳能照明监控系统

在公共照明领域,传统的电力照明系统存在高能耗和维护不便等问题。利用LabVIEW开发太阳能照明监控系统,通过智能控制和实时监测,提高能源利用效率,降低维护成本,实现照明系统的可持续发展。 ​ 项目背景 随着能源危机…

5. 马科维茨资产组合模型+政策意图AI金融智能体(Qwen-Max)增强方案(理论+Python实战)

目录 0. 承前1. AI金融智能体1.1 What is AI金融智能体1.2 Why is AI金融智能体1.3 How to AI金融智能体 2. 数据要素&计算流程2.1 参数集设置2.2 数据获取&预处理2.3 收益率计算2.4 因子构建与预期收益率计算2.5 协方差矩阵计算2.6 投资组合优化2.7 持仓筛选2.8 AI金融…

【华为路由的arp配置】

华为路由的arp配置 ARP:IP地址与MAC地址的映射。 R1: g0/0/0:10.1.1.254/24 g0/0/1:10.1.2.254/24 PC1: 10.1.1.1/16 PC2: 10.1.1.2/16 PC3: 10.1.2.3/16 动态ARP 查看PC1的arp表,可以看到,列表为空。 查看R1的arp表 在PC3上ping命令测…

U3D的.Net学习

Mono:这是 Unity 最初采用的方式,它将 C# 代码编译为中间语言 (IL),然后在目标平台上使用虚拟机 (VM) 将其转换为本地机器码执行。 IL2CPP:这是一种较新的方法,它会将 C# 代码先编译为 C 代码,再由 C 编译器…

机器学习-线性回归(简单回归、多元回归)

这一篇文章,我们主要来理解一下,什么是线性回归中的简单回归和多元回归,顺便掌握一下特征向量的概念。 一、简单回归 简单回归是线性回归的一种最基本形式,它用于研究**一个自变量(输入)与一个因变量&…

智能体的核心技能之插件,插件详解和实例 ,扣子免费系列教程(11)

欢迎来到滔滔讲AI,今天我们来学习智能体的核心功能点之一的插件。 插件是通过API连接集成各种平台和服务,它扩展了智能体的能力。平台内置了丰富的插件,我们可以直接调用。 一、什么是插件 首先,插件其实就像一个工具箱。 每个插…

Spring Security(maven项目) 3.0.2.6版本—总

通过实践而发现真理,又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识,又从理性认识而能动地指导革命实践,改造主观世界和客观世界。实践、认识、再实践、再认识,这种形式,循环往复以至无穷&#xf…

超强推理大模型 QVQ-32B-preview 一键部署

QwQ-32B-Preview 是 Qwen 团队于 2024 年开发的实验研究模型,专注于提高 AI 推理能力。这个模型在多个基准测试中展现了卓越的性能,特别是在 GPQA、AIME、MATH-500 和 LiveCodeBench 等测试中,准确率分别达到了 65.2%、50.0%、90.6% 和 50.0%…

数据结构(Java)——二叉树

1.概念 二叉树是一种树形数据结构,其中每个节点最多有两个子节点,通常被称为左子节点和右子节点。二叉树可以是空的(即没有节点),或者由一个根节点以及零个或多个左子树和右子树组成,其中左子树和右子树也分…

谷粒商城——商品服务-三级分类

1.商品服务-三级分类 1.1三级分类介绍 1.2查询三级分类查询-递归树型结构数据获取 1.2.1导入数据pms_catelog.sql到数据表pms_category 1.2.2一次性查出所有分类及子分类 1.2.2.1修改CategoryController.java /*** 查出所有分类以及子分类,以树形结构组装起来*/R…

AviatorScript用法

AviatorScript的介绍,网上有很多,这里就不啰嗦了。这里介绍下传参的用法 应用场景:如果不想频繁的打包升级,而是想只更新某些规则脚本重启服务就可以升级的话,AviatorScript无疑是最佳选择。比如说,今天制…

云计算和服务器

一、云计算概述 ICT是世界电信协会在2001年的全球性会议上提出的综合性概念,ICT分为IT和CT,IT(information technology)信息技术,负责对数据生命周期的管理;CT(communication technology),负责数据的传输管理。 CT技术…

论文:深度可分离神经网络存内计算处理芯片

引言:SRAM - CIM芯片在处理深度可分离神经网络时面临的挑战 深度可分离卷积(Depthwise separable convolution, DSC)由逐深度卷积(DW)和逐点卷积(PW)组成,逐深度卷积用于提取空间特征&#xff…

代码随想录刷题day14(1)|(链表篇)142.环形链表 II

目录 一、链表理论基础 二、环形链表思路 1.如何判断有环? 2.如何找出环的入口? 3.其他疑问 三、相关算法题目 四、总结 一、链表理论基础 代码随想录 (programmercarl.com) 二、环形链表思路 1.如何判断有环? 使用快慢指针法&…

运算放大器应用电路设计笔记(六)

6.1输出失调电压发生的原因与计算 6.1.1用噪声增益进行评价 若运算放大器两个输入端接地,则理想运放输出为零,但实际的运放输出不为零,有一定的直流输出电压。这种直流电压称为输出失调电压。发生的原因是,运算放大器内部元件尤…

openresty(nginx)+lua+kafka实现日志搜集系统

今天我们来实现一下快捷的nginx日志搜集系统,主讲的是nginx服务里面的openresty的日志搜集。采用的手段是采用lua做中间桥梁。 一、安装openresty 具体安装步骤在这里《centos7 二进制安装openresty》 二、安装kafka 1、安装Java及配置Java 具体安装步骤在这里《采…

PortSwigger靶场练习---网页 LLM 攻击:间接提示注入

网页 LLM 攻击: Indirect prompt injection 间接提示注入 PortSwigger靶场地址: Dashboard | Web Security Academy - PortSwigger 题目: 官方提示: 发现攻击面 点击实时聊天以访问实验室的聊天功能。 询问LLM它有权访问哪些 AP…

【2024.12】西电英语听说雨课堂期末考试答案

前言 这次的英语听说1和2雨课堂期末是同一张卷子。 26-40为填空题,后面有些话太长了 37. when they are physicial active 38. people could need two times as much water as others do 39. why people have the idea that good health requires eight…

人声检测原理VAD

在机器人的研究中,机器人与人语音交互是一个重要的功能,在语音交互中,人声检测至关重要。不论是在手机中,还是在esp32芯片上,都需要一种简单快捷的方式来检测本地语音,滤掉杂音和噪音。 机器人启动后会一直…

2_高并发内存池_各层级的框架设计及ThreadCache(线程缓存)申请内存设计

一、高并发内存池框架设计 高并发池框架设计,特别是针对内存池的设计,需要充分考虑多线程环境下: 性能问题锁竞争问题内存碎片问题 高并发内存池的整体框架设计旨在提高内存的申请和释放效率,减少锁竞争和内存碎片。 高并发内存…