- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
若干数学专题 清华大学 刘汝佳 内容介绍 代数工具 向量 矩阵 方程 初等数论 组合计数 代数工具 代数——用字母代替数 “麻烦”子问题 初始:(1,0,1,0,3,1,0,0) 合法解:EF-, AE-, AD+, AE-, DC- 麻烦子问题 黑白染色! 每次黑白的差不会变 如果一开始黑白个数不等,则无解 考虑一个面:A,B,C,D 用字母代替数!设各面有a,b,c,d个粒子 A和B同时增加c个,变为a+c,b+c,c,d B和C同时减少c个,变为a+c,b,0,d 效果:转移到对角位置!(接下来呢?请思考) 沙漠 司令部在(0, 0),左下角 沿直线行走L米,沙漠中速度为v0 有n个矩形区域,内部速度为vi(i=1,2..n) L很大,结束位置一定不位于矩形内 找一个最佳角度,旅行时间最短 沙漠 先把时间表示成角度的函数,再求极值 路程被分成小段,怎么办? 统一的形式:(a+b/k)sqrt(1+k2) 散步 在一个开始位置(x,y),给n个向量 依次沿着各个向量正着走或者反着走 例如在点(1, 2),向量在(5, -4) 正着走在(6, -2) 反着走在(-4, 6) 每个向量长度不超过L 如何让最后离开始位置的距离不超过sqrt(2)L? 散步 如果有三个以上的向量,任选三个: 有两个夹角 60o,两正 有两个夹角 =120o,一正一负 用向量加法,得到两个长度不超过L的向量 只有两个向量呢? 细菌 N个培养皿排成一圈,培养皿i有细菌bi个。 die i 0,培养皿i的所有细菌都死亡,即bi ←0; reproduce i k,培养皿i每个细菌分裂成k个,即bi ←bi*k copy i j,培养皿j的复制到第i个培养皿,即bi ←bi + bj; teleport i j,培养皿j细菌转移到培养皿i,即bi ← bi + bj,bj ←0; swap i j,交换第i和第j两个培养皿的细菌; merry-go-round 0 0,每个培养皿逆时针移到下一个位置 如果bi k,则bi ← bi mod k 重复的执行着M条指令(第0,1,2…M-1,0,1,2…T mod M条) 时刻T时,每个培养皿有多少细菌? 算法一 直接模拟 每时刻最坏情况O(n) 总时间O(nT) 能否快速计算呢? 操作是有循环的,那么… 把“操作”定义得紧凑些! 算法二 细菌数目看成向量b 操作看成矩阵A,则操作一次以后的细菌数目为bA 怎样把操作写成矩阵形式? die i 0操作:把单位矩阵i的(i,i)置为0即可。 reproduce i k操作:把单位矩阵的(i,i)置为k即可。 copy i j操作:把单位矩阵的(j,i)置为1即可。 teleport i j操作:把单位矩阵的(j,i)置为1,再把(j,j)置为0即可。 swap i j操作:把单位矩阵的第i行和j行交换。 merry-go-round 0 0操作:把单位矩阵的第一行移动到最后一行的后面。 算法二(续) 本题实际上是求b0*A0*A1*…*AT-1 操作是循环的! 记A = A0*A1*…Am-1 需要求b0*AT/m*A0*…*AT mod m 关键:快速求出AT/m! 先求A2,A4,A8,… 时间复杂度O(log(T/m)) X行星 有一个X行星 最开始只有一堵墙,加两面墙形成房子 以后每次都选择一面已经有的墙 然后建造两面新的墙构成一个新房子。 X行星(续) 每个墙角有一个灯 每个灯可能开着,也可能关着 每个墙角还有一个开关 控制该墙角和相邻墙角的灯 如开关1控制开关3,4,5 如何使所有灯关掉? 分析 每个开关最多按一次 用布尔变量xi表示开关i是否开过 对于每个灯i,得到一个方程! 方程是怎样的形式? 如何解方程组? 高斯消元 两个方程取xor 内容介绍 代数工具 初等数论 整除 进位制 模线性方程 组合计数 初等数论 基本概念 整除和约数 素数和合数 算术基本定理 除法的定义和同余 最大公约数(gcd)和最小公倍数(lcm) 互素、两两互素 素数测试 问题一:求1~n的所有素数 Eraosthenes的筛子 对于素数p,删除p*p, p*(p+1), p*(p+2)… 例:求[n, n+m]内的所有素数 n很大 m很小 如何筛? 如何加速? 素数测试 问题二:给数n,它是素数吗? 朴素算法:枚举sqrt(n)内约数 改进算法:枚举sqrt(n)内素数 预处理出sqrt(n)内素数:筛? Monte-Carlo算法 不断选基b,重复以下测试 测试越多,正确概率越大 最大公约数 gcd(a,b)=gcd(b, a mod b) 程序:递归求解 时间复杂度O(logb) 一定存在整数x,y,使得ax+by=gcd(a,b) 如何求? 把gcd的递归
文档评论(0)