格的基本定义

根据向量空间的概念,格的定义如下:

定义3.1 设v1,⋯,vn∈Rmv_1,\cdots,v_n \in \mathbb{R}^mv1​,⋯,vn​∈Rm为一组线性无关的向量。由v1,⋯,vnv_1,\cdots,v_nv1​,⋯,vn​生成的格LLL指的是向量v1,⋯,vnv_1,\cdots,v_nv1​,⋯,vn​的线性组合构成的向量集合,且其所使用的系数均在Z\mathbb{Z}Z中,即L={a1v1+a2v2+⋯+anvn:a1,a2,⋯,an∈Z}L= \{a_1v_1+a_2v_2+\cdots+a_nv_n:a_1,a_2,\cdots,a_n\in\mathbb{Z}\}L={a1​v1​+a2​v2​+⋯+an​vn​:a1​,a2​,⋯,an​∈Z}

任意一组可以生成格的线性无关的向量都称为格的,格的基中的向量个数成为格的维度。任意两组这样的向量中,向量的个数相同。

定理3.1 格LLL的任意两个基可以通过在左边乘上一个特定的矩阵来相互转化。这个矩阵是由整数构成的,并且它的行列式值为±1\pm1±1。

定义3.2 所有向量的坐标都是整数的格称为整数格。等价地,当m≥1m\ge1m≥1时,整数格时Zm\mathbb{Z}^mZm的一个加法子群。

定义3.3 若Rm\mathbb{R}^mRm的一个子集LLL在加法和减法下是封闭的,则它是一个加法子群。如果再满足以下条件,那么它是一个离散加法子群:
存在一个常数ε>0\varepsilon>0ε>0,对任意v∈Lv \in Lv∈L,有L⋂{ω∈Rm:∣∣ν−ω∣∣<ε}={v}L\bigcap \{ \omega\in\mathbb{R}^m:||\nu-\omega||<\varepsilon\} = \{v\}L⋂{ω∈Rm:∣∣ν−ω∣∣<ε}={v}
换句话说,如果在LLL中任取一个向量vvv,并以vvv为圆心,以半径ε\varepsilonε画一个实心圆,那么LLL中不会有别的点落在圆内。

定理3.2 Rm\mathbb{R}^mRm的一个子集是一个格,当且仅当它是一个离散加法子群。

定义3.4 设LLL是一个维度为nnn的格,且v1,v2,…,vnv_1,v_2,…,v_nv1​,v2​,…,vn​是LLL的基。对应于这个基的基础区域是如下向量的集合:F(v1,v2,…,vn)={t1v1+t2v2+…+tnvn:0≤ti<1}F(v_1,v_2,…,v_n)=\{t_1v_1+t_2v_2+…+t_nv_n:0\le t_i <1\}F(v1​,v2​,…,vn​)={t1​v1​+t2​v2​+…+tn​vn​:0≤ti​<1}

定理3.3设L⊂RnL\subset\mathbb{R}^nL⊂Rn是一个维度为n的格,且FFF是它的基础区域。那么,对于任意向量w∈Rnw\in\mathbb{R}^nw∈Rn,存在唯一的t∈Ft\in Ft∈F和唯一的v∈Lv \in Lv∈L,满足w=t+vw=t+vw=t+v。也可写为F+v={t+v:t∈F}F+v = \{t+v:t\in F\}F+v={t+v:t∈F}

定义3.5 设LLL是一个维度为n的格,FFF是LLL的一个基础区域。FFF的n维的体积称为LLL的行列式(有时也成为协体积),记为detLdetLdetL。

《格理论与密码学》笔记一相关推荐

  1. 冒号课堂 编程范式与OOP思想

    上篇:编程范式与编程语言 第1课 开班导言 第2课 重要范式 第3课 常用范式 第4课 重温范式 第5课 语言小谈 第6课 语言简评 下篇:抽象机制与对象范式 第7课 抽象封装 第8课 抽象接口 第9 ...

  2. 编程范式(斯坦福大学)学习笔记《四》

    斯坦福大学开放课程--编程范式(四) 综述 本节课的主要内容是关于泛型数据的拷贝,虽然是使用C语言实现,并且没有用到C++中的模板这种泛型编程技术,但是效果却非常好.本节内容紧接上节所将的字节位拷贝的 ...

  3. 编程范式(斯坦福大学)学习笔记《二》

    斯坦福大学开放课程:编程范式学习笔记<二> 本课讲述了C/C++关于int,float等数据的底层表示,以及赋值操作所进行的处理.本节内容比较简单,应该属于组成原理的基础知识,各种码的表示 ...

  4. 冒号课堂:知识之上是思想,思想之上是精神

    http://www.cnblogs.com/xyz98/archive/2009/03/11/1408998.html 1.1开班发言--程序员的四层境界 授人以鱼不如授人以渔            ...

  5. Java面向对象编程的程序设计(OOP)思想

    文章目录 面向对象(oop) 封装 继承 多态 抽象类(abstract) 类型转化(instanceof) static关键字 面向对象(oop) 面向对象程序设计(Object Oriented ...

  6. 编程范式(斯坦福大学)学习笔记《十一》

    上次的课中都是使用C代码生成汇编代码,这次课中将使用C++代码生成汇编代码,对比结果发现这两种语言最终生成的代码形式很像. C语言版本: void foo() {int x;int y;x=11;y= ...

  7. 编程范式(斯坦福大学)学习笔记《十二》

    本节课讲解的主要是预处理器,编译和连接的异同. #define有两个功能:一个是定义常量,一个是作为宏. //定义常量 #define w 40 #define h 80 #define pere 2 ...

  8. 《冒号课堂》连载之十七——逻辑范式

    <冒号课堂>连载之十七--逻辑范式 4.2  逻辑范式--当算法失去了控制 道常无为而无不为. --<老子·道经> 关键词:编程范式:逻辑式编程:Prolog:算法:逻辑:控制 ...

  9. 《冒号课堂》连载之七——声明范式:目标决定行动

    <冒号课堂>连载之七--声明范式:目标决定行动 2.2  声明范式--目标决定行动 给我一个支点,我能挪动地球. --阿基米德 关键词:编程范式:命令式编程:声明式编程:函数式编程:逻辑式 ...

  10. 《冒号课堂》精彩书评集萃

    冒号课堂--将我带入编程的第三层境界 看山是山,看水是水. 看山不是山,看水不是水. 看山还是山,看水还是水,但是山更绿,水更清. 人生有三层境界,编程境界也和人生境界惊人的相似. 从大学期间接触编程 ...

最新文章

  1. Qt::ConnectionType(信号与槽的传递方式)
  2. UAC 实现原理及绕过方法
  3. 一个神奇的测试_这4个在线黑科技工具拥有神奇的魔法,值得收藏!
  4. django 日志多个服务连接_Django多进程日志文件问题
  5. 让Windows下的驱动乖乖在Linux中安家!
  6. 普元工作流EOS Workflow 学习笔记
  7. DB2 数据库软件下载
  8. java 课件_java ppt课件
  9. 高效准确处理scipy.misc 中imresize、imread导入错误问题
  10. 大数据、物联网技术、物联网卡,对我们生活带来的影响
  11. 基于微信小程序的每日签到打卡系统ssm框架
  12. 怎么考核程序员?(文末有互动红包)
  13. 深响|对话THE9演唱会主创:技术打开想象力,未来的娱乐还能这么玩
  14. 清除右键新建中多余菜单
  15. 计算机软件研究方法与技术路线,研究方法与技术路线
  16. 两条纵坐标折线图绘制
  17. 树莓派机器人小车(创乐博)修炼指南(一)
  18. python 根据TIN查询点云坐标
  19. Bloom泛光后期处理效果
  20. 【高等代数】第一章:多项式部分【1】

热门文章

  1. 网络故障排除工具 | 快速定位网络故障
  2. 要建设数据中心吗?IDC数据中心的四大要求来了解一下!
  3. java判断表是否存在_java怎么判断表是否存在?
  4. DayDayUp:那些年-程序猿的爱情故事
  5. ML之FE:基于FE特征工程对RentListingInquries数据集进行预处理并导出为三种格式文件(csv格式/txt格式/libsvm稀疏txt格式)
  6. 成功解决AttributeError: module 'tensorflow.python.keras' has no attribute 'Model'
  7. Algorithm:C++语言实现之概率算法相关问题(计算机中的概率事件、C语言中的随机事件、产生二维随机数、圆内均匀取点)
  8. DL之MaskR-CNN:Mask R-CNN算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
  9. JAVA_OA(六):SpringMVC登陆实例
  10. Python封装发送信息到钉钉群