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, ...
随机推荐
- web.xml文件报错:cvc-complex-type.2.4.a: Invalid content was found starting with element 'init-param'.
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" ...
- WDK编程的一些特殊点
函数的多线程安全性在内核编程中比用户态应用程序的编程更常见. 调用源 运行环境 原因 driverEntry,DriverUnload 单线程 这两个函数由系统进程的单一线程调用,不会出现多线程同时调 ...
- JavaScript功能检测技术和函数构造
Javascript与很多编程语言不同,它不能够控制其运行环境.再写php代码时,只要在服务器端部署了正确的版本,那么程序就绝对能够运行,对于其他python或ruby后端语言来说,也不存在什么灰色区 ...
- 【Android Demo】通过WebService获取今日天气情况
因为本身是在搞.NET方面的东东,现在在学习Android,所以想实现Android通过WebService接口来获取数据,网上很多例子还有有问题的.参考:Android 通过WebService进行 ...
- At least one object must implement IComparable
中文:必须至少有一个对象实现 IComparable. 序列排序时报这个错误 lstReports.OrderBy(r => new { r.DepartmentName, r.ReportNo ...
- 五个有用的jquery小技巧
1.禁用鼠标右键 $(document).ready(function() { $(document).bind("contextmenu", function(e) { retu ...
- Update和LateUpdate的区别
LateUpdate晚于所有Update执行 在圣典里LateUpdate被解释成一句话:LateUpdate是在所有Update函数调用后被调用.这可用于调整脚本执行顺序. 当物体在Update里移 ...
- Unity脚本生命周期
前言 说到生命周期,影响最深刻的是,在接触Java的JSF组件时,JSF组件的五大生命周期,全要默写出来,嘿嘿…… 总结这两天在写小怪和掉落的糖葫芦时,老是遇到GameObject未销毁,一直存在场景 ...
- emberjs创建类
创建一个Person类Person = Ember.Object.extend({ say: function(thing) { alert(thing); } }); 创建一个Person对象也就是 ...
- 【转】【C#】【Thread】【Parallel】并行计算
并行计算 沿用微软的写法,System.Threading.Tasks.Parallel类,提供对并行循环和区域的支持. 我们会用到的方法有For,ForEach,Invoke. Program.Da ...