首页 > 其他分享 >闲话 23.1.22

闲话 23.1.22

时间:2023-01-22 15:33:49浏览次数:61  
标签:ix cos frac 22 int 闲话 poly 23.1 sin

闲话

拜年祭……怎么说呢……中规中矩吧?
没有太多惊艳的演出 也有点炒冷饭的味道
我能做到的是被里面的话语感染到
和看到一些作品后高兴地在椅子上乱动
有很多”有深度的人文作品“
总感觉就是从这里开始不对劲的。

多项式全家桶题单
image

今天大年初一!祝大家新年快乐!
之前都是拜早年 现在才是正式的新年快乐!

多项式三角函数

就是应用高数相关知识得到一些形式三角函数的表达式。

容易直接写出 \(\sin(x)\) 和 \(\cos(x)\) 的麦克劳林级数:

\[\sin(x) = x - \frac{x^3}{3!} + \frac{x^5}{5!} - \frac{x^7}{7!} + \cdots \]

\[\cos(x) = 1 - \frac{x^2}{2!} + \frac{x^4}{4!} - \frac{x^6}{6!} + \cdots \]

我们并无法通过多项式复合得到 \(\sin(F(x))\),这是由于 \(\sin(x)\) 没法被表示为简单多项式的复合。因此我们需要通过一些易于复合的多项式表出它们。

考虑 \(e^x\) 的麦克劳林级数:

\[e^x = 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!} + \cdots \]

我们如果能让 \(\sin(x)\) 和 \(\cos(x)\) (在某个域上)的线性组合能表出 \(e^x\),那我们就可以简单地通过配凑系数用 \(e^x\)(在这个域内)表出 \(\sin, \cos\)。

具体地,我们考虑用 \(\sin(x)\) 和 \(\cos(x)\) 直接相加的结果和 \(e^x\) 来比较系数。我们应当让这两个级数的各项彼此分离,所以不妨构造一类二维交换结合域,记二元数单位是 \(i\)。不妨设线性组合是 \(\cos(x) + i\sin(x)\),则它的麦克劳林级数是

\[1 + ix - \frac{x^2}{2!} - i\frac{x^3}{3!} + \frac{x^4}{4!} + i\frac{x^5}{5!} - \frac{x^6}{6!} + \cdots \]

根据这个形式,不妨直接展开 \(e^{ix}\),能得到

\[e^{ix} = 1 + ix + \frac{i^2x^2}{2!} + \frac{i^3x^3}{3!} + \frac{i^4x^4}{4!} + \frac{i^5x^5}{5!} + \frac{i^6x^6}{6!}\cdots \]

可以得到 \(i^2 = -1, i^3 = -i, i^4 = 1\),因此可以知道 \(i\) 是虚数单位 \(\sqrt{-1}\)。因此我们也能知道,最开始构造的域就是复数域 \(\mathbb C\)。

于是我们能得到经典的欧拉公式:

\[e^{ix} = \cos(x) + i\sin(x) \]

其中 \(i = \sqrt{-1}\)。也可以知道 \(e^{-ix} = \cos(-x) + i\sin(- x) = \cos(x) - i\sin(x)\)。

自然能得到

\[\sin(x) = \frac{e^{ix} - e^{-ix}}{2i}\qquad\cos(x) = \frac{e^{ix} + e^{-ix}}{2} \]

考虑我们如何将 \(i\) 投射在 \(F_{p}\) 域内。可以发现,\(i\) 也是 \(x^4 = 1\) 的根,即 \(\omega_4^1\)。假设 \(g\) 是 \(p\) 的原根,我们能表出 \(i = g^{(p - 1) / 4}\)。

最后只需要带入 \(F(x)\),求一下 \(\exp\) 即可。总时间复杂度 \(O(\text M(n))\),或采用半在线卷积得到更快的实现。

Submission.

反三角函数大概要比三角函数前置知识简单一些。

众所周知,反三角函数的导数形式简单,因此我们可以求导再积分。

\[\arcsin(F(x)) = \int \left(\arcsin(F(x))\right)'\text dx = \int F'(x) \left(\arcsin(x)\right)'\text dx = \int \frac{F'(x)}{\sqrt{1 - F^2(x)}} \text dx \]

\[\arctan(F(x)) = \int \left(\arctan(F(x))\right)'\text dx = \int F'(x) \left(\arctan(x)\right)'\text dx = \int \frac{F'(x)}{1 + F^2(x)} \text dx \]

直接做就行了。

Submission.

code
inline poly sin() const {
	int omega_4 = qp(gen, (mod - 1) >> 2);
	poly F = ((*this) * omega_4).exp();
	return qp(omega_4 * 2, mod - 2) * (F - F.inv());
}
inline poly cos() const {
	int omega_4 = qp(gen, (mod - 1) >> 2);
	poly F = ((*this) * omega_4).exp();
	return qp(2, mod - 2) * (F + F.inv());
}
inline poly tan() const { 
	return sin() * cos().inv(); 
}
inline poly asin() const {
	poly A = deri(), B = (*this) * (*this); B.resize(size());
	B = (1 - B).ivsqrt();
	return (A * B).intg().slice(degree());
}
inline poly acos() const {
	poly A = (mod - 1) * deri(), B = (*this) * (*this); B.resize(size());
	B = (1 - B).ivsqrt();
	return (A * B).intg().slice(degree());
}
inline poly atan() const {
	poly A = deri(), B = 1 + (*this) * (*this); 
	B.resize(size()); B = B.inv();
	return (A * B).intg().slice(degree());
}

标签:ix,cos,frac,22,int,闲话,poly,23.1,sin
From: https://www.cnblogs.com/joke3579/p/chitchat230122.html

相关文章

  • 春秋云镜CVE-2022-25101
    一.信息收集及漏洞利用打开靶场,显示界面如下   尝试访问靶场描述的路径,返回404,于是开始路径爆破,返回如下 发现有跳转登录页面,访问/admin/start/index.php,出现登......
  • ​03.Win11_22H2_2023年1月官方累积更新镜像下载
    大版本号:22H2​内部版本号:22621.1105​版本说明​大版本号:每年发布一次,如2021年21H2、2022年22H2​小版本号:每年提供若干次ISO镜像,大版本号不变,变化的是小版本号(内部版本号......
  • 在Visual Studio2022使用AStyle格式化代码
    前言 最近用VS2022写C++代码,虽然可以直接设置自己的代码风格,但效果并不那么如意,甚至在格式化后的代码还有下面这样的     于是我又试着使用了clang-forma......
  • abc222 F - Expensive Expense
    题意:给定一棵树,边权为路费,点权为观光费。从\(u\)去\(v\)旅游的费用定义为路费加上\(v\)点的观光费求从每个点出发到其它点旅游的最大费用\(n\le2e5\)思路:一眼......
  • 2023.1.21除夕课内浅浅学习
    早上-上午:1.语文:两首古诗背诵(15min)实际用时:14'07''2.英语:回顾单词(45min)实际用时32'09''3.生物:《五三》P17-P18,P179-P183(神经冲动的产生和传导)1hour20min实际用时:1ho......
  • V的2022 - 往事随风
    V的2022-往事随风其实今年想写的很多,但能下笔写出来的又太少,自己还是想保持住每年一次的习惯,而且已经有几个朋友已经在催了,还有追更的读者这是我没想到的。顺便放一......
  • 闲话 23.1.21
    闲话为啥最近在讲解板子呢?主要是最近过年了就不动脑子了(拜年祭!拜年祭!拜年祭!去bilibili233直播间可以砍很可爱寐寐大家!除夕快乐!冒泡排序,选择排序,插入排序,快速排序......
  • 最完美WIN11_Pro_22H2.22623.1180软件选装纯净版VIP38.8
    【系统简介】=============================================================1.本次更新母盘来WIN11_Pro_22H2.22623.1180。进一步优化调整。2.不支持更新,更新后精简版更新......
  • Ubuntu22.04 安装 ssh
    目录Ubuntu22.04安装ssh一、环境配置二、启动远程连接三、开放端口四、远程连接Ubuntu22.04安装ssh一、环境配置安装Ubuntu系统后,我们首先需要配置管理员ro......
  • 2023.1.21 app后端pyinstaller启动
    1.打包后会在dist文件夹中暂时生成一个新的文件目录,点击app.exe后也是在这个暂时的文件目录下读取文件的,所以需要以下代码拷贝添加原始项目中的文件pyinstaller-Dapp.p......