Diary & Note - 两个惊喜
我们有单位根反演:
\]
我们有 CRT:
\Leftrightarrow x\equiv \sum_{i=1}^nr_i\cdot\operatorname{inv}(M/m_i,m_i)\cdot M/m_i\pmod M.
\]
我们还有 Lagrange 插值:
\]
然后我宣称 CRT 才是老大!
从单位根反演开始,其实它指出
\]
(左侧在组合意义上与原式左侧相等是显然的,就不证了。)它是如何实现这一过程的?注意到有
\]
然后浅代数基本定理一下就是
\]
如果我们求出 \(y_i=[x^0](f(x)\bmod (x-\omega_k^i))\),大概就可以 CRT 一发合并了?
注意到 \(f(x)\bmod (x-t)=f(t)\),所以 \(y_i=f(\omega_k^i)\)。套一套 CRT 的话……
\Leftrightarrow f(x)\equiv\sum_{i=0}^{k-1}y_i\cdot\prod_{j\neq i}\frac{1}{\omega_k^i-\omega_k^j}\cdot\prod_{j\neq i}(x-\omega_k^i)\pmod{x^k-1}\\
\begin{aligned}[]
\Rightarrow [x^0](f(x)\bmod (x^k-1)) &= \sum_{i=0}^{k-1}y_i\cdot \frac{\omega_k^i}{k}\cdot \omega_k^{-i}\\
&= \frac{1}{k}\sum_{i=0}^{k-1}f(\omega_k^i).
\end{aligned}
\]
(第二项的化简好像 3B1B 讲过形象证明,不过可以直接洛。)这 tm 不就是所谓单位根反演吗?
但是,要说从 \(f(x)\bmod (x^k-1)\) 推导单位根反演,我一开始的思路是 Lagrange 插值。但……也许不怎么科学,我们用 \(f\) 的点值而非 \(f(x)\bmod(x^k-1)\) 的点值。带入插值公式:
\]
对比上面 CRT 的结论,发现 \(g(x)=f(x)\bmod (x^k-1)\),我们也可以从 Lagrange 插值的角度,取常数项得到单位根反演。
那么 CRT 和 Lagrange 插值又是什么关系?
式子是一样的,也就是说……
若 Lagrange 用 \(x_{1..n}\) 去插 \(f(x)\),令 \(h(x)=\prod_{i=1}^n(x-x_i)\),那实际上得到的 \(g(x)\) 就是
\]
为什么插出 \(n\) 次多项式至少需要 \(n+1\) 个点值?因为 \(\deg h>n\) 时,可以保证 \(g(x)=f(x)\)。而在推导单位根反演的过程中,我们不知道 \(\deg f\),自然也就是引入模 \((x^k-1)\) 来表示最终结果了。
也许可以这么说:
- Lagrange 插值是 CRT 的特殊情况(无需取模);
- 单位根反演是弟中弟。
Lagrange 插值法是以法国十八世纪数学家 Joseph-Louis Lagrange 命名的一种多项式插值方法。然而在南北朝时期,《孙子算经》卷下第二十六题就已经提出了更为广义的中国剩余定理。比西方整整早了十三个世纪!(doge
还是希望第一次学 Lagrange 插值 / CRT / 单位根反演,或者第一次学完 Lagrange 插值 & CRT & 单位根反演 的时候,就被安利这个惊喜 w。
前面是第一个惊喜,下面这首翻唱是第二个咯。
真的是 IT 的时代啊,最近的 ACE 和 SynthV 引入 AI 的技术力真的比传统 V 强大了几个层次,可以让音乐圈不明真相的叔叔评价“被上帝吻过的嗓音”。主页推送几乎从【洛天依原创】全部变成【洛天依 AI】(当然,中间没空格 w)。虽然 P 主变 A 主从客观上看应该是大势所趋,但不管怎么说都算是对“情怀”的巨大冲击。而且“不难听的歌”的调试门槛降低,肯定又会有一堆小鬼来污染环境。
没有什么成熟的见解。有意思的是,“它们”都是洛天依,这似乎契合了我所认为的“爱”虚拟歌姬的本质。
结束语:都给我去听啊喂!
Diary & Note - 两个惊喜的更多相关文章
- [翻译]魅族的M1 Note是十分廉价(dirt-cheap)的iphone5C增强版
Meizu's M1 Note is a dirt-cheap iPhone 5c on steroids 魅族的M1 Note是十分廉价(dirt-cheap)的ihone5C增强版 While m ...
- Oracle库Delete删除千万以上普通堆表数据的方法
需求:Oracle数据库delete删除普通堆表千万条历史记录. 直接删除的影响: 1.可能由于undo表空间不足从而导致最终删除失败的问题: 2.可能导致undo表空间过度使用,影响到其他用户正常操 ...
- SVN学习之参数定义及设置
http://jackyrong.iteye.com/blog/238835 conf目录中打开svnserve.conf ,去掉注释,搞成如下这样 [general] anon-access = r ...
- 《锋利的Jquery第二版》读书笔记 第三章
DOM操作的分类 1.DOM Core不专属JavaScript,任何一种支持DOM的程序设计语言都可以使用它,也可以处理XML等标记语言编写出来的文档,getElementById().setAtt ...
- SVN配置文件详解
本章将详细介绍前一章所涉及的两个配置文件, svnserve.conf 和 authz.conf,通过对配置逐行的描述,来阐明其中的一些细节含义.除此之外的其他配置.安装等内容,不是本文重点,读者若有 ...
- threejs里面的vector3源码解析
// File:src/math/Vector3.js /** * @author mrdoob / http://mrdoob.com/ * @author *kile / http://kile. ...
- mysql数据库的基本操作:索引、视图,导入和导出,备份和恢复
1.索引: 索引是一种与表有关的结构,它的作用相当于书的目录,可以根据目录中的页码快速找到所需的内容. 当表中有大量记录时,若要对表进行查询,没有索引的情况是全表搜索:将所有记录一一取出,和查询条件进 ...
- C 语言 符合运算符
复合赋值 5个算术运算符 + - * / % 可以和赋值运算符 = 结合起来形成符合运算符 += -= *= /= %= total += 5 total = total + 5 note:两个运算符 ...
- OJ题解记录计划
容错声明: ①题目选自https://acm.ecnu.edu.cn/,不再检查题目删改情况 ②所有代码仅代表个人AC提交,不保证解法无误 E0001 A+B Problem First AC: 2 ...
- PHP之数组函数
php数组中的预定义变量 预定义常量 CASE_LOWER (integer) CASE_LOWER 用在array_change_key_case()中将数组的键名转换为小写字母.这也是array_ ...
随机推荐
- CSS动画(波光粼粼登录页面)
1.整体效果 https://mmbiz.qpic.cn/sz_mmbiz_gif/EGZdlrTDJa4AbemkU3vLRIDzTIgPHSjicia97wfvMVAhqZL4lsGbQQCbsV ...
- Java基础综合项目(ATM系统)
文章目录 1.ATM项目介绍 2.项目架构搭建.欢迎界面设计 3.开户功能实现 4.生成卡号 5.登录功能 6.展示用户操作界面 7.查询账户.退出 8.存款 9.取款 10.转账 11.修改密码 1 ...
- php几种常用的算法
1 <?php 2 3 // 选择排序 4 5 function select_sort($arr) 6 7 { 8 9 $count = count($arr); 10 11 for ($i ...
- 从编译链接到cmake
.c(.cpp)文件到可执行文件 对于一份简单的.c/.cpp为后缀的源文件,他所使用的语言是人类可以阅读并看懂的,但是对于计算机来说,其可理解并执行的是二进制的机器码. 也就是说,计算机所能运行的是 ...
- Linux 练习
目录 练习一 练习2 练习一 分析日志t.log(访问量),将各个ip地址截取,并统计出现次数,并按从大到小排序(腾讯) 每行格式:http: //192.168.200.30/index1.html ...
- vue2-基础核心
vue简介 vue中文官网 动态构建用户界面的渐进式 JavaScript 框架 vue的特点: 遵循MVVM模式 采用组件化模式,提高代码复用率,让代码更好维护 声明式编码,无需直接操作DOM,提高 ...
- html代码新手教学
HTML 是超文本标记语言(HyperText Markup Language)的缩写,是用来描述网页结构的标记语言.在这篇教学中,我们将介绍一些 HTML 基础知识,帮助新手快速学习并掌握如何编写简 ...
- 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-5-创建首个自动化脚本(详细教程)
1.简介 前面几篇宏哥介绍了两种(java和maven)环境搭建和浏览器的启动方法,这篇文章宏哥将要介绍第一个自动化测试脚本.前边环境都搭建成功了,浏览器也驱动成功了,那么我们不着急学习其他内容,首先 ...
- php xattr操作文件扩展属性再续
今天偶然发现自己电脑还有一个隐藏硬盘,500G的我平时没挂载,就没用到,然后这次就给它挂载了,然后发现读取文件,操作xattr都很慢,比之前速度慢10倍左右,猜测可能是固态硬盘和机械硬盘的差别关系.看 ...
- 使用 httputils + protostuff 实现高性能 rpc
1.先讲讲 protostuf protostuf 一直是高性能序列化的代表之一.但是用起来,可难受了,你得先申明 protostuf 配置文件,并且要把这个配置文件转成类.所以必然要学习新语法.新工 ...