及数学相关的问题.pdf

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
信息学竞赛中数学的基本问题 雅礼 朱全民 代数工具 – 字母 – 数 – 向量 – 矩阵 – 方程 – 方程组 思考题1:细菌 • N个培养皿排成一圈,培养皿i有细菌bi个。 – die i 0,培养皿i的所有细菌都死亡,即bi ←0; – reproduce i k,培养皿i每个细菌分裂成k个,即 b ←b *k i i – copy i j ,培养皿j 的复制到第i个培养皿,即b ←b + b ; i i j – teleport i j ,培养皿j 细菌转移到培养皿i,即b ←b + b , i i j b ←0; j – swap i j ,交换第i和第j 两个培养皿的细菌; – merry-go-round 0 0,每个培养皿逆时针移到下一个 位置 • 如果b k,则b ← b mod k i i i • 重复的执行着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操作:把单位矩阵的第一行移动 到最后一行的后面。 算法二(续) • 本题实际上是求b *A *A *…*A 0 0 1 T-1 • 操作是循环的! – 记A = A *A *…A 0 1 m-1 – 需要求b *AT/m*A *…*A 0 0 T mod m – 关键:快速求出AT/m ! 2 4 8 • 先求A ,A ,A ,… • 时间复杂度O(log(T/m)) 初等数论 • 基本概念 – 整除和约数 – 素数和合数 – 互素、两两互素 – 唯一分解定理 – 除法的定义和同余 – 费马小定理 – 欧拉定理 – 最大公约数(gcd)和最小公倍数(lcm) 素数测试 • 问题:求1~n的所有素数

您可能关注的文档

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档