Coding the Matrix (0):映射、复数和域
1. 非常好的 Python 教程
《深入 Python 3.0》 以及 IBM 开发社区的博客探索 Python.
2. 子集: s 是 S 的子集
>>>S = {2, 3, 4, 5, 6, 7}
>>>s = {x for x in S if x%2==0} # 偶数子集
>>>s
set([2, 4, 6])
3. 映射:Ceasar 加密
>>> import string
>>> table = string.maketrans("abcdefghijklmnopqrstuvwxyz", "cdefghijklmnopqrstuvwxyzab") # 向后平移两位
>>> print "hello".translate(table)
jgnnq
4. 复数练习
>>> 1 + 1j
(1+1j)
>>> 1 + 1j + (10 + 20j) # 相加
(11+21j)
>>> x = 1 + 3j
>>> (x - 1)**2 # 相乘
(-9+0j)
>>> x.real # 实部
1.0
>>> x.imag # 虚部
3.0
>>> type(x)
<type 'complex'>
5. 复平面
复数的绝对值
>>> abs(3 + 4j)
5.0
复数画点
plotting.py 的下载地址
>>> from plotting import plot
>>> L = [2+2j, 3+2j, 1.75+1j, 2+1j, 2.25+1j, 2.5+1j, 2.75+1j, 3+1j, 3.25+1j]
>>> plot(L)画图如下:

复数画图
>>> from image import *
>>> I = color2gray(file2image('./pic/01.png'))
>>> row = len(I) # 垂直高度
>>> col = len(I[0]) # 水平长度
>>> M = [x + y*1j for x in range(col) for y in range(row) if I[row-y-1][x] < 120]
>>> plot(M, max(row, col), 1) # 第二个参数便于坐标系大小的自动调节, 第三个参数表示每个像素显示的大小
图像平移
(x + yi) to (a+x + (b+y)i)
>>> plot({z + (1+2j) for z in L})
图像缩放
(x + yi) to (0.5x + 0.5yi)
>>> plot([.5*z for z in M], max(row, col), 1)

中心对称变换
(x + yi) to (-x - yi)
>>> plot({-z for z in L})
以坐标轴为中心旋转 90 度
(x + yi) to (-y + xi)
the same as:
(x + yi) to i*(x + yi)
>>> plot({1j*z for z in L})
以坐标轴为中心任意旋转和缩放

旋转 45 度:
>>> from math import pi, e
>>> plot([e**(pi*1j/4)*z for z in M], max(row, col), 1)
欧拉恒等式:
欧拉公式:


6. Playing with GF(2)
玩玩有限域(伽罗华域, galois field)
galois field 2 只有两个元素: 0 和 1. 在这个域中,加法运算是异或操作,乘法运算是与操作。运算律比如分配律在这里仍然适用。
>>> from GF2 import one
>>> one + one
0
>>> one + 0
one
>>> one * one
one
>>> one * 0
0
>>> one / one
one对于这样一个加密系统:

概率均匀分布,并且密文与明文是独立的。
Network coding
Streaming video through network
a) 一个顾客木有问题

b) 两个顾客发生冲突

c) 先编码,再解码,两个发送端可同时发送到两个接收端

Coding the Matrix (0):映射、复数和域的更多相关文章
- 【Python】Coding the Matrix:Week 5: Dimension Homework 5
这一周的作业,刚压线写完.Problem3 没有写,不想证明了.从Problem 9 开始一直到最后难度都挺大的,我是在论坛上看过了别人的讨论才写出来的,挣扎了很久. Problem 9在给定的基上分 ...
- Coding the Matrix Week 1 The Vector Space作业
Coding the Matrix: Linear Algebra through Computer Science Applications 本周的作业较少,只有一个编程任务hw2.作业比较简单,如 ...
- Coding the Matrix作业Python Lab及提交方法
Coding the Matrix: Linear Algebra through Computer Science Applications 这是一门用python实现矩阵运算的课,第一次作业就感觉 ...
- Spring boot2.0 与 2.0以前版本 跨域配置的区别
一·简介 spring boot升级到2.0后发现继承WebMvcConfigurerAdapter实现跨域过时了,那我们就紧随潮流. 二·全局配置 2.0以前 支持跨域请求代码: import or ...
- Coding the Matrix (3):矩阵
1. 矩阵与映射 矩阵和映射包含两方面的关系: 简单:已知矩阵 M, 从向量 x 映射到 M * x. (注:矩阵与行向量的点乘) 稍微复杂:已知映射 x ->M * x, 求矩阵 M. 第一种 ...
- Vuejs2.0之异步跨域请求
Vuejs由1.0更新到了2.0版本.HTTP请求官方也从推荐使用Vue-Resoure变为了axios.接下来我们来简单地用axios进行一下异步请求.(阅读本文作者默认读者具有使用npm命令的能力 ...
- Natasha 4.0 探索之路系列(二) "域"与插件
域与ALC 在 Natasha 发布之后有不少小伙伴跑过来问域相关的问题, 能不能兼容 AppDomain, 如何使用 AppDomain, 为什么 CoreAPI 阉割了 AppDomain 等一系 ...
- tomcat7.0配置CORS(跨域资源共享)
平时我们做前台页面时可能会遇到浏览器以下提示(浏览器控制台): 已阻止跨源请求:同源策略禁止读取位于 http://xxx.xxx.com 的远程资源.(原因:CORS 头缺少 'Access-Con ...
- Coding the Matrix (2):向量空间
1. 线性组合 概念很简单: 当然,这里向量前面的系数都是标量. 2. Span 向量v1,v2,.... ,vn的所有线性组合构成的集合,称为v1,v2,... ,vn的张成(span).向量v1, ...
随机推荐
- linux动态网络和静态网络和克隆后的网络配置
建议设置网卡NAT模式 动态网络配置:1.一定要开启本地DHCP服务 2.在虚拟网络编辑器中选择NAT模式选中DHCP项如下图 3.ifup eth0 静态网络配置 : 注释:ifcfg-eth0部分 ...
- hdu 3367 Pseudoforest(最大生成树)
Pseudoforest Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) To ...
- linux文件压缩与打包
在linux中常见的压缩命令 首先,在linux中压缩文件的扩展名大多是 *.gz gzip程序压缩的文件 *.bz2 bzip2程序压缩的文件 *.tar tar程序打包的数据,并没有压缩过 *.t ...
- Java中的静态方法和单例模式比较
区别 单例模式方法 静态方法 实例 创建实例 无 运行 类的实例的方法 类的方法 也可以通过实例化,在通过类的实例来运行 是否可以被重写 可以 可以(子类的该方法也必须是静态方法) 调用其他静态方法 ...
- [转]后台页面访问权限:页面基类&内置票据认证 使用方法
本文转自:http://www.cnblogs.com/fishtreeyu/archive/2011/01/29/1947421.html 一般网站后台页面除了登录页面login.aspx未登录用户 ...
- 无向图的最短路径算法JAVA实现
一,问题描述 给出一个无向图,指定无向图中某个顶点作为源点.求出图中所有顶点到源点的最短路径. 无向图的最短路径其实是源点到该顶点的最少边的数目. 本文假设图的信息保存在文件中,通过读取文件来构造图. ...
- codeforces 709C C. Letters Cyclic Shift(贪心)
题目链接: C. Letters Cyclic Shift 题意: 现在一串小写的英文字符,每个字符可以变成它前边的字符即b-a,c-a,a-z这样,选一个字串变换,使得得到的字符串字典序最小; 思路 ...
- Spring 一二事(3) - 别名
别名就是可以通过另外一个名字来访问如下,已有bean:helloWorld3,那么定义别名(alias )后,就能使用“abc”来访问 <bean id="helloWorld3&qu ...
- 云盘WEB资料下载链接
入门三板斧:http://www.cnblogs.com/jikey/p/3613082.html 入门看这个:http://pan.baidu.com/s/1pJqJvAV 入门JS视频:http: ...
- C和指针笔记 3.7 存储类型
变量的破碎类型是指存储变量值的内存类型.变量的存储类型决定变量何时创建.何时销毁以及它的值将保持多久. 有三个地方可以用于存在变量:普通内存.运行时堆栈.硬件寄存器. 变量的缺省存储类型取决于它的声明 ...