关闭

[置顶] C#中CLR(公共语言运行时)与IL(中间代码)

.net平台中的CLR首先要说明的是,.NET平台与C#不是一回事 它是C#,VB.net等程序运行的平台。CLR是公共语言运行时,是 .NET Framework的重要组成部分。它提供了内存管理、线程管理和异常处理等服务,而且还负责对代码实施严格的类型安全检查,保证了代码的正确性。事实上,类型安全(Type Checker)、垃圾回收(Garbage Collector)、异常处理(Excep...
阅读(6472) 评论(0)

[置顶] Java中的JIT机制对运行速度的优化

在先前的博客,Javac编译过程,简略讲述了Java compiler(javac),可以看出javac和C的compiler不一样, 它产生的是统一规格、与机器 binary 格式无关的 bytecode。 但是这也导致了严重的问题, interpret 通常比直接 compile 成 平台限定的原生 binary 码来得慢。但经过JIT的优化后,有些Java代码的执行速度甚至比c c++的更快。...
阅读(4170) 评论(0)

[置顶] Javac编译过程

Javac编译器将*.java文件编译成为*.class文件的过程,这里的Javac编译器称为前端编译器;相对应的还有后端编译器,它在程序运行期间将字节码转变成机器码。...
阅读(3869) 评论(0)

[置顶] 矩阵奇异值分解与照片压缩、去噪

#从特征值分解引入 我们知道矩阵的特征值分解是提取矩阵特征的一个方法,其中v是一个一维矩阵,λ是特征值,代表v表示的矩阵特征的重要性。但矩阵的特征值分解有一个局限性,在于变换的矩阵必须是方阵。奇异值分解现实世界中大部分矩阵都不是方阵,这时如果我们想描述矩阵的特征,就要用到奇异值分解。 假设A是一个N * M的矩阵,那么得到的U是一个N * N的方阵(里面的向量是正交的,U里面的向量称为左奇异向...
阅读(3823) 评论(0)

[置顶] python 模拟登陆leetcode

模拟登陆,首先要知道提交页面的网址,和每次post的内容,采用chrome的浏览器的开发者工具,查看。得到下图可以看到提交的内容包括”csrfmiddlewaretoken”、”login”、”password”,后两个是用户名和密码,第一个应该是一中验证机制,每次打开页面都会随机生成一个,果不其然,在网页的代码中找到 这样,我们只要每次把登陆界面的csrf值扣出来,然后放到和用户名,密码放到一个...
阅读(2737) 评论(4)

[置顶] 用python生成验证码图片

引入 基本上大家使用每一种网络服务都会遇到验证码,一般是网站为了防止恶意注册、发帖而设置的验证手段。其生成原理是将一串随机产生的数字或符号,生成一幅图片,图片里加上一些干扰象素(防止OCR)。下面就详细讲解如何生成验证码。 所需环境 除了配置好的python环境外,还需要配有python中的PIL库,这是python中专门用来处理图片的库。用传统的pip install 方法或者下载源码 p...
阅读(6042) 评论(2)

[置顶] Java序列化Serializable解析

引入我们知道在java中一切即对象,那我们如果想存储对象或者传送对象时该怎么办?对象又不是字节或者字符,不能直接用输入输出流来进行读写。这时就用到序列化了。概念维基百科上的定义是: 对同步控制而言,表示强制在同一时间内进行单一存取。 在数据储存与传送的部分是指将一个对象存储至一个储存媒介,例如档案或是记亿体缓冲等,或者透过网络传送资料时进行编码的过程,可以是字节或是XML等格式。而字节的或...
阅读(1960) 评论(3)

[置顶] 21行python代码实现拼写检查器

引入大家在使用谷歌或者百度搜索时,输入搜索内容时,谷歌总是能提供非常好的拼写检查,比如你输入 speling,谷歌会马上返回 spelling。 下面是用21行python代码实现的一个简易但是具备完整功能的拼写检查器。代码import re, collectionsdef words(text): return re.findall('[a-z]+', text.lower()) def tra...
阅读(9400) 评论(8)

SonicOperator之数据处理

数据清洗对数据进行重新审查和校验的过程,目的在于删除重复信息、纠正存在的错误,并提供数据一致性。 在进行常规的检验数据的时候,根据基本原则,去掉重复数据与冲突数据。将采集到的数据视为均匀分布在设定的特征值数量的情况下,根据得到的数据分布选择适当的插值来补充缺失的特征。对于这样经过快速傅立叶变换后的数据,经过多次实验,最终选择牛段插值法。 数据降噪 信息中的噪声数据的变化波动幅度相对于整体数据...
阅读(133) 评论(0)

SonicOperator之超声波

多普勒效应是波源和观察者有相对运动时,观察者接受到波的频率与波发出的频率并不相同的现象。远方急驶过来的火车鸣笛声变得尖细(即频率变高,波长变短),而离我们而去的火车鸣笛声变得低沉(即频率变低,波长变长),就是多普勒效应的现象,同样现象也发生在私家车鸣响与火车的敲钟声。 超声波,又称超音波,是指任何声波或振动,其频率超过人类耳朵可以听到的最高阈值20kHz(千赫)。因而我们利用手机发出超声波,人耳不...
阅读(161) 评论(0)

SonicOperator之傅里叶变换10

好了,刚才我们已经看到了大海——连续的傅里叶变换频谱,现在想一想,连续的螺旋线会是什么样子:想象一下再往下翻:是不是很漂亮?你猜猜,这个图形在时域是什么样子?哈哈,是不是觉得被狠狠扇了一个耳光。数学就是这么一个把简单的问题搞得很复杂的东西。顺便说一句,那个像大海螺一样的图,为了方便观看,我仅仅展示了其中正频率的部分,负频率的部分没有显示出来。如果你认真去看,海螺图上的每一条螺旋线都是可以清楚的看到的...
阅读(106) 评论(0)

SonicOperator之傅里叶变换9

六、指数形式的傅里叶变换有了欧拉公式的帮助,我们便知道:正弦波的叠加,也可以理解为螺旋线的叠加在实数空间的投影。而螺旋线的叠加如果用一个形象的栗子来理解是什么呢?  光波高中时我们就学过,自然光是由不同颜色的光叠加而成的,而最著名的实验就是牛顿师傅的三棱镜实验:所以其实我们在很早就接触到了光的频谱,只是并没有了解频谱更重要的意义。但不同的是,傅里叶变换出来的频谱不仅仅是可见光这样频率范围有限的叠加,...
阅读(196) 评论(0)

SonicOperator之傅里叶变换8

虚数i这个概念大家在高中就接触过,但那时我们只知道它是-1 的平方根,可是它真正的意义是什么呢? 这里有一条数轴,在数轴上有一个红色的线段,它的长度是1。当它乘以 3 的时候,它的长度发生了变化,变成了蓝色的线段,而当它乘以-1 的时候,就变成了绿色的线段,或者说线段在数轴上围绕原点旋转了 180 度。我们知道乘-1 其实就是乘了两次 i 使线段旋转了 180 度,那么乘一次 i 呢——答案很简单...
阅读(211) 评论(0)

SonicOperator之傅里叶变换7

相信通过前面三章,大家对频域以及傅里叶级数都有了一个全新的认识。但是文章在一开始关于钢琴琴谱的例子我曾说过,这个栗子是一个公式错误,但是概念典型的例子。所谓的公式错误在哪里呢?傅里叶级数的本质是将一个周期的信号分解成无限多分开的(离散的)正弦波,但是宇宙似乎并不是周期的。曾经在学数字信号处理的时候写过一首打油诗:往昔连续非周期,回忆周期不连续,任你ZT、DFT,还原不回去。(请无视我渣一样的文学水平...
阅读(279) 评论(0)

SonicOperator之傅里叶变换6

下面我们继续说相位谱:通过时域到频域的变换,我们得到了一个从侧面看的频谱,但是这个频谱并没有包含时域中全部的信息。因为频谱只代表每一个对应的正弦波的振幅是多少,而没有提到相位。基础的正弦波A.sin(wt+θ)中,振幅,频率,相位缺一不可,不同相位决定了波的位置,所以对于频域分析,仅仅有频谱(振幅谱)是不够的,我们还需要一个相位谱。那么这个相位谱在哪呢?我们看下图,这次为了避免图片太混论,我们用7个...
阅读(206) 评论(0)

SonicOperator之傅里叶变换5

三、傅里叶级数(Fourier Series)的相位谱 在这一章最开始,我想先回答很多人的一个问题:傅里叶分析究竟是干什么用的?这段相对比较枯燥,已经知道了的同学可以直接跳到下一个分割线。先说一个最直接的用途。无论听广播还是看电视,我们一定对一个词不陌生——频道。频道频道,就是频率的通道,不同的频道就是将不同的频率作为一个通道来进行信息传输。下面大家尝试一件事:先在纸上画一个sin(x),不一定标...
阅读(242) 评论(0)

SonicOperator之傅里叶变换4

介绍完了频域的基本组成单元,我们就可以看一看一个矩形波,在频域里的另一个模样了: 这是什么奇怪的东西?这就是矩形波在频域的样子,是不是完全认不出来了?教科书一般就给到这里然后留给了读者无穷的遐想,以及无穷的吐槽,其实教科书只要补一张图就足够了:频域图像,也就是俗称的频谱,就是—— 再清楚一点: 可以发现,在频谱中,偶数项的振幅都是0,也就对应了图中的彩色直线。振幅为 0 的正弦波。...
阅读(200) 评论(0)

SonicOperator之傅里叶变换3

如果我们把第一个频率最低的频率分量看作“1”,我们就有了构建频域的最基本单元。对于我们最常见的有理数轴,数字“1”就是有理数轴的基本单元。(好吧,数学称法为——基。在那个年代,这个字还没有其他奇怪的解释,后面还有正交基这样的词汇我会说吗?)时域的基本单元就是“1 秒”,如果我们将一个角频率为\omega_{0} 的正弦波 cos(\omega_{0} t)看作基础,那么频域的基本单元就是\omega...
阅读(205) 评论(0)

SonicOperator之傅里叶变换2

二、傅里叶级数(Fourier Series)的频谱还是举个栗子并且有图有真相才好理解。如果我说我能用前面说的正弦曲线波叠加出一个带 90 度角的矩形波来,你会相信吗?你不会,就像当年的我一样。但是看看下图: 第一幅图是一个郁闷的正弦波 cos(x)第二幅图是 2 个卖萌的正弦波的叠加 cos (x) +a.cos (3x)第三幅图是 4 个发春的正弦波的叠加第四幅图是 10 个便秘的正弦波的...
阅读(214) 评论(0)

SonicOperator之傅里叶变换1

一、什么是频域从我们出生,我们看到的世界都以时间贯穿,股票的走势、人的身高、汽车的轨迹都会随着时间发生改变。这种以时间作为参照来观察动态世界的方法我们称其为时域分析。而我们也想当然的认为,世间万物都在随着时间不停的改变,并且永远不会静止下来。但如果我告诉你,用另一种方法来观察世界的话,你会发现世界是永恒不变的,你会不会觉得我疯了...
阅读(262) 评论(0)

SonicOperator之超声波

超声波,又称超音波,是指任何声波或振动,其频率超过人类耳朵可以听到的最高阈值20kHz(千赫)。超声波由于其高频特性而被广泛应用于医学、工业等众多领域。某些动物,如犬只、海豚、以及蝙蝠等等都有着超乎人类的耳朵,也因此可以听到超声波。亦有人利用这个特性制成能产生超声波来呼唤犬只的犬笛。所谓超声波,只透过具有弹性与惯性介质,如空气,当空气本身一旦产生膨胀或压缩时,透过其分子的运动而有波动的传拨产生。因此...
阅读(241) 评论(0)

SonicOperator之多普勒效应

多普勒效应是波源和观察者有相对运动时,观察者接受到波的频率与波源发出的频率并不相同的现象。远方急驶过来的火车鸣笛声变得尖细(即频率变高,波长变短),而离我们而去的火车鸣笛声变得低沉(即频率变低,波长变长),就是多普勒效应的现象,同样现象也发生在私家车鸣响与火车的敲钟声。 这一现象最初是由奥地利物理学家多普勒1842年发现的。荷兰气象学家拜斯·巴洛特(Buys Ballot)在1845年让一队喇叭手...
阅读(384) 评论(0)

Node.js模块导出exports 和 module.exports 的区别

关于exports和module.exports的关系可以总结为 1. module.exports 初始值为一个空对象 {},所以 exports 初始值也是 {} 2. exports 是指向的 module.exports 的引用 3. require() 返回的是 module.exports 而不是 exports...
阅读(7983) 评论(0)
84条 共6页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:175966次
    • 积分:2562
    • 等级:
    • 排名:第15788名
    • 原创:83篇
    • 转载:1篇
    • 译文:0篇
    • 评论:27条
    博客专栏
    最新评论