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):映射、复数和域的更多相关文章

  1. 【Python】Coding the Matrix:Week 5: Dimension Homework 5

    这一周的作业,刚压线写完.Problem3 没有写,不想证明了.从Problem 9 开始一直到最后难度都挺大的,我是在论坛上看过了别人的讨论才写出来的,挣扎了很久. Problem 9在给定的基上分 ...

  2. Coding the Matrix Week 1 The Vector Space作业

    Coding the Matrix: Linear Algebra through Computer Science Applications 本周的作业较少,只有一个编程任务hw2.作业比较简单,如 ...

  3. Coding the Matrix作业Python Lab及提交方法

    Coding the Matrix: Linear Algebra through Computer Science Applications 这是一门用python实现矩阵运算的课,第一次作业就感觉 ...

  4. Spring boot2.0 与 2.0以前版本 跨域配置的区别

    一·简介 spring boot升级到2.0后发现继承WebMvcConfigurerAdapter实现跨域过时了,那我们就紧随潮流. 二·全局配置 2.0以前 支持跨域请求代码: import or ...

  5. Coding the Matrix (3):矩阵

    1. 矩阵与映射 矩阵和映射包含两方面的关系: 简单:已知矩阵 M, 从向量 x 映射到 M * x. (注:矩阵与行向量的点乘) 稍微复杂:已知映射 x ->M * x, 求矩阵 M. 第一种 ...

  6. Vuejs2.0之异步跨域请求

    Vuejs由1.0更新到了2.0版本.HTTP请求官方也从推荐使用Vue-Resoure变为了axios.接下来我们来简单地用axios进行一下异步请求.(阅读本文作者默认读者具有使用npm命令的能力 ...

  7. Natasha 4.0 探索之路系列(二) "域"与插件

    域与ALC 在 Natasha 发布之后有不少小伙伴跑过来问域相关的问题, 能不能兼容 AppDomain, 如何使用 AppDomain, 为什么 CoreAPI 阉割了 AppDomain 等一系 ...

  8. tomcat7.0配置CORS(跨域资源共享)

    平时我们做前台页面时可能会遇到浏览器以下提示(浏览器控制台): 已阻止跨源请求:同源策略禁止读取位于 http://xxx.xxx.com 的远程资源.(原因:CORS 头缺少 'Access-Con ...

  9. Coding the Matrix (2):向量空间

    1. 线性组合 概念很简单: 当然,这里向量前面的系数都是标量. 2. Span 向量v1,v2,.... ,vn的所有线性组合构成的集合,称为v1,v2,... ,vn的张成(span).向量v1, ...

随机推荐

  1. Oracle VirtualBox 使用桥接网络完成主机和虚拟机之间的双向通讯

    最近刚换了新的笔记本电脑,终于使用上intel i7处理器,可以使用硬件虚拟化技术安装系统.配置如下: 主机      ThinkPad P50s   OS Window 10 虚拟机软件  Orac ...

  2. nyoj 120 校园网络

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=120 思路:先将原图强连通缩点为新图,统计新图中入度,出度为0的点的个数,两者取最大值即为 ...

  3. Android ImageButton图像灰色边框

    灰色边框,是imageButton空间自带的. 第一种解决方案: android:scaleType="fitXY"//这个代码是:拉伸图片(不按比例)以填充的长宽.所以图像最后最 ...

  4. [瞎JB写] C++多态

    似乎只能通过引用或者指针进行动态多态...蛋疼的语法 #include <iostream> #include <vector> #include <memory> ...

  5. Git指令总结和图表

    Git 是一个很强大的分布式版本控制系统.它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势. Git常用操作命令: 1) 远程仓库相关命令 检出仓库:$ git clone g ...

  6. 2016"百度之星"-资格赛

    //本题要求:(Ar*A2...An)%p,亦即[(A1*A2*...An)/(A1*A2*...Ar-1)]%p,由于A1*A2...An乘积过大,无法求得相除所得的结果 //我们需要用到乘法逆元( ...

  7. Spring 4.1+ 的 JSONP使用

    如今的巨石应用已经越来越不行了,很多互联网在后期都会在用分布式的架构 那么在页面上不同的服务调用不同域名下的json是有问题的 (跨域:不同域名,相同域名但是不同端口) JavaScript规范中提到 ...

  8. maven - pom.xml 聚合(父)工程 基本内容演示

    企业开发中所用到的基本jar包以及插件都已在此 可以自己根据实际情况酌情增减 <project xmlns="http://maven.apache.org/POM/4.0.0&quo ...

  9. java 20 - 5 字节输出流写出数据的一些方法

    首先回顾下 字节输出流操作步骤:  A:创建字节输出流对象  B:调用write()方法  C:释放资源 创建字节流输出对象 FileOutputStream fos = new FileOutput ...

  10. TP第一天路由解析

    路由解析:支持四种URL模式,分别是普通模式.路径模式.重写模式.兼容模式,分别用0123表示 普通模式:http://网址/index.php?m=model&c=user&a=lo ...