最近在看CKKS方案,里面的编码/解码用到了n次单位根,感觉基于环上的加密,很多都会用到,现在系统的学习一下!

定义

先看定义:

\[z^n=1,(n=1,2,3,...)
\]

该方程的根z为n次单位根,就是说这些根是复数!

简单说:n次方根,就是多项式\(x^n-1\)或方程\(x^n-1=0\)在复数域内的n个不同的根,简称单位根

具体来讲,单位根有n次根的有n个:$$z_i=e^{2\pi ki/n },(k=0,1,2,..,n-1)$$

复数域内:$$x_k=cos(2k\pi/n)+sin(2k\pi/n)I,(k=0,1,2,..,n-1),i是虚数单位$$

举个例子:

其中提到了“本源根”,后面再去单独介绍!

性质

1、对于方程\(x^n-1=0\),不同的我单位根只有n个

例如:取k=0,1,2,..,n-1,就得到n个不同的n次单位根

取\(k=q*n+m,(q\in \mathbb{Z}^+,m=(0,1,...,n-1))\)时,\(x_k=x_{q*n+m}=x_m\)

2、n次单位根的模为1,即\(|x_k|=1\)

3、两个n次单位根(\(x_i,x_j\))的乘积,仍是一个n次单位根\(w_i*w_j=W_{i+j}\),则:

(1)\((x_i)^{-1}=x_{-I}\)

(2)\((x_m)^{k}=x_{m*k}\),(m,k是任意整数,当k=0时,\((x_m)^{0}=1=x_{0}\))

(3)\(x_{m}=x_l\):需要gcd(m,l)=1

(4)任何一个单位根都可以写为\(x_0\)的幂,如\(x_m=(x_1)^m\),这种根叫做n次本原单位根,简称n次原根或原根。当p和n互素且\(1 \leqslant p < n\)时,\(x_1^p\)都是n次本原单位根

(5)一个n次单位根的共轭复数也是一个n次单位根,记 \(\overline{x}=x_{n-m}\)

(6)对于任意的l和r,都有\((x_i)^r=(x_r)^l\)

(7)若a是整数,则

\[1+x_1^a+x_2^a+...+x_{n-1}^a=\left\{\begin{matrix}
\\n,gcd(a,n)=1
\\
\\
\\0,gcd(a,n)\neq 1
\end{matrix}\right.\]

(8)全部单位根把复数平面的单位圆周(|z|=1)n等分了,构成了外接圆半径为1的正n边形的顶点,其中一个顶点为 \(x_0(1,0)\)

举例:

n次单位根(n-th unit root)的更多相关文章

  1. Unable to resolve persistence unit root URL

    异常信息 时间:2017-03-07 11:46:05,516 - 级别:[ WARN] - 消息: [other] The web application [ROOT] appears to hav ...

  2. DFT/FFT/NTT

    在Seal库和HElib库中都用到了NTT技术,用于加快多项式计算,而NTT又是FFT的优化,FFT又来自于DFT,现在具体学习一下这三个技术! 基础概念 名词区分 1.DFT:离散傅立叶变换 2.F ...

  3. 计量经济与时间序列_ADF单位根检验步骤

    1 ADF检验也叫扩展的迪克富勒检验,主要作用是检测序列的平稳性,也是最常用检测序列平稳性的检验方法. 2 何为:平稳性?单位根?(略),见这部分随便的其他内容有讲解.是建模对数据的先决条件. 3 A ...

  4. nginx unit PHP

    2018-12-26 14:20:33 星期三 综述: nginx unit php 的关系: nginx -> 转发请求到 8300端口 -> unit 转发 8300 收到的请求 -& ...

  5. Systemd unit generators unit

    systemd.generator(7) - Linux manual page http://man7.org/linux/man-pages/man7/systemd.generator.7.ht ...

  6. python时间序列分析

              题记:毕业一年多天天coding,好久没写paper了.在这动荡的日子里,也希望写点东西让自己静一静.恰好前段时间用python做了一点时间序列方面的东西,有一丁点心得体会想和大家 ...

  7. spring boot 部署为jar

    前言 一直在ide中敲代码,使用命令行mvn spring-boot:run或者gradlew bootRun来运行spring boot项目.想来放到prod上面也应该很简单.然而今天试了下,各种问 ...

  8. POJ 3342 - Party at Hali-Bula 树型DP+最优解唯一性判断

    好久没写树型dp了...以前都是先找到叶子节点.用队列维护来做的...这次学着vector动态数组+DFS回朔的方法..感觉思路更加的清晰... 关于题目的第一问...能邀请到的最多人数..so ea ...

  9. 概率论:假设检验-t检验和Augmented Dickey–Fuller test

    http://blog.csdn.net/pipisorry/article/details/51184556 T检验 T检验,亦称student t检验(Student's t test),学生t检 ...

随机推荐

  1. spring security 继承 WebSecurityConfigurerAdapter 的重写方法configure() 参数 HttpSecurity 常用方法及说明

    HttpSecurity 常用方法及说明 方法 说明 openidLogin() 用于基于 OpenId 的验证 headers() 将安全标头添加到响应 cors() 配置跨域资源共享( CORS ...

  2. Ribbon原理与应用

    一.定义 Ribbon是请求的负载均衡器,它为我们提供了几种负载均衡算法:轮询.随机等. 二.配置 spring: cloud: loadbalancer: retry: enabled: true ...

  3. Ubuntu16安装Nvidia驱动(GTX1060显卡)

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  4. 端口状态 LISTENING、ESTABLISHED、TIME_WAIT及CLOSE_WAIT详解,以及三次握手四次挥手,滑动窗口(整理转发)

    网上查了一下端口状态的资料,我下面总结了一下,自己学习学习: TCP状态转移要点 TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死 ...

  5. 备忘录——基于rdlc报表实现打印产品标签

    目录 0. 背景说明 1. 条形码生成 2. 获取产品的小程序码 3. 报表设计器设计标签模版 3.1 为WinForm控件工具箱添加ReportViewer控件 3.2 为VS2019安装RDLC报 ...

  6. 《剑指offer》面试题37. 序列化二叉树

    问题描述 请实现两个函数,分别用来序列化和反序列化二叉树. 示例:  你可以将以下二叉树: 1 / \ 2 3 / \ 4 5 序列化为 "[1,2,3,null,null,4,5]&quo ...

  7. python环境搭建以及jupyter notebook的安装和启动

    一.Python 环境搭建 本章节我们将向大家介绍如何在本地搭建Python开发环境. Python可应用于多平台包括 Linux 和 Mac OS X. 你可以通过终端窗口输入 "pyth ...

  8. [ARM汇编]常用ARM汇编指令

  9. 安卓开发之intent

    两个活动之间的跳转要通过intent来进行,intent跳转分为隐式的和显示的. 首先xml中定义Button,通过按下按钮实现回调,在回调函数中进行相应intent设置. <Button an ...

  10. 集合框架-TreeSet-Comparator比较器

    1 package cn.itcast.p5.treeset.demo; 2 3 import java.util.Iterator; 4 import java.util.TreeSet; 5 6 ...