精华内容
下载资源
问答
  • 自相关函数-浅学

    万次阅读 2018-05-24 11:40:05
    老板要求做个自相关函数的处理模块,要求逻辑正确,高速处理, c++实现,别人解释了下什么是自相关函数,又查了些资料,记录一些浅薄的理解,理解不一定正确,先看简单的两条曲线 A 和B:离散化后,这两条曲线的平均...

    auto-correlation

    老板要求做个自相关函数的处理模块,要求逻辑正确,高速处理, c++实现,

    别人解释了下什么是自相关函数,又查了些资料,记录一些浅薄的理解,理解不一定正确,


    先看简单的两条曲线 A 和B:



    离散化后,这两条曲线的平均值应该是很接近的, 同样, 这两条曲线的标准差也是很接近的

    但是!!!    很明显, 很直观的, A曲线明显是有一定的规律的,如果当成正弦的话,平移一个周期后还是相同的,但是B曲线就是一个大的鼓起,然后就是平直线,,,这种意识上直观的差异,就是自相关函数想要再数学上具体描述的东西

    直观的含义就是: 把信号平移一段距离后, 和原先的信号有多相似


    于是就有个自相关的数学定义:



    深入的自相关还会加入卷积相关概念, 目前项目以上知识已经够用, 深入的等空下来再研究下

    展开全文
  • 【笔记总结】C++函数

    2020-05-26 20:18:32
    2、创建类型对象时会被自己调用(每创建一个类对象就会调用一次),对象整个生命周期一定会被调用一次,也只能被调用一次。 3、构造函数主要用来负责成员变量的初始化,分配相关资源,设置对象的初始状态 4、构造...

    C++函数

    一、构造函数

    类名(形参表){}
    

    1、构造函数:类的同名函数,没有返回值。
    2、创建类型对象时会被自己调用(每创建一个类对象就会调用一次),对象整个生命周期中一定会被调用一次,也只能被调用一次。
    3、构造函数主要用来负责成员变量的初始化,分配相关资源,设置对象的初始状态
    4、构造函数可以被重载

    二、析构函数

    ~类名(void){}
    

    1、是特殊的成员函数。
    2、析构函数会在销毁对象时自动调用,在对象整个生命周期内最多被调用一次。
    3、析构函数负责释放在构造函数期间所获取的所有资源。
    4、如果一个类没有实现析构函数,会在编译时自动生成一个具有析构函数功能的二进制指令,它负责释放编译器所能看到的资源(成员变量、类成员、父类成员),即缺省构造(唯一的作用就是避免系统错误)。
    5、析构函数因为没有参数,所以不可以被重载
    6、当类成员中有指针成员时,必须实现析构函数

    三、拷贝构造

    类名(类&){}
    

    1、拷贝构造又称复制构造,是一种特殊的构造函数,它是使用一个现有的旧对象构造一个新对象时调用的函数,只有一个引用型的参数(对象本身)。
    2、当用一个对象给另一个对象初始化时,会调用隐藏的拷贝构造函数(自带的)
    3、当类成员中有指针成员,浅拷贝只拷贝指针变量的值,而深拷贝是拷贝指针变量所指向的目标。
    4、当类成员中有指针成员,且指针指向堆内存资源,浅拷贝会导致该资源被释放两次,此时默认的拷贝构造(浅拷贝)就无法完成任务,需要自己手动实现拷贝构造(深拷贝)。
    注意:
    什么情况下会调用拷贝构造

    ①使用旧对象给新对象赋值时(初始化)

    `User user1 = user;
    //User user1; user1=user;  此时是赋值,不是初始化,不会调用拷贝构造
    

    ②使用对象当作函数的参数,当调用函数时就会一起调用拷贝构造。

    四、赋值构造

    void operator=(const 类&){}
    

    1、当一类旧对象给另一个类旧对象赋值时,就会调用赋值构造。(对象=对象)
    2、编译器会生成一个缺省的赋值构造,负责把一个对象的内存拷贝给另一个对象(浅拷贝)。
    3、当需要深拷贝时需要自己手动实现,也就是拷贝构造与赋值构造需要同时实现。

    关于拷贝构造、赋值构造的建议

    1、缺省的拷贝构造、赋值构造函数不光会拷贝本类的数据,也会调用成员类对象和父类的拷贝构造和赋值构造,而不是单纯的按字节复制,因此尽量少用指针成员。
    2、在函数参数中尽量使用类指针或引用来当参数(不要直接使用类对象),减少调用拷贝构造和赋值构造的机会,也可以降低数据传递的开销。
    3、如果由于特殊原因无法实现完整的拷贝构造、赋值构造,建议将它们私有化,防止误用。
    4、一旦为一个实现了拷贝构造,那么也一定要实现赋值构造。

    实现string类的四个隐藏函数:
    • 构造函数
    • 析构函数
    • 拷贝构造
    • 赋值构造`
    #include <iostream>
    #include <cstring>
    using namespace std;
    
    class String
    {
    	char* str;
    public:
    		//构造
    		String(const char* str="")
    		{
    			this->str= new char[strlen(str)+1];
    			strcpy(this->str,str);
    		}
    		
    		//拷贝构造
    		String(const String& that)
    		{
    			str=new char[strlen(that.str)+1];
    			strcpy(str,that.str);
    		}
    
    		//析构
    		~String(void)
    		{
    			delete[] str;
    		}
    		
    		//赋值构造
    		void operator=(const String& that)
    		{
    			if(this!=&that)
    			{
    				//防止内存泄露
    				delete[] str;
    
    				str=new char[strlen(that.str)+1];
    				strcpy(str,that.str);
    			}
    
    		}
    
    		void show(void)
    		{
    			cout << str <<endl;
    		}
    
    };
    
    int main()
    {
    	const String st("haha");
    	String st2=st;
    	String st3;
    	st3 = st;
    	st2.show();
    	st3.show();
    }
    
    展开全文
  • C++中的构造函数

    2019-08-29 17:03:25
    创建类型对象时会被自己调用(每创建一个类对象就会调用一次),对象整个生命周期一定会被调用一次,只能被调用一次。 3、负责干什么 成员变量的初始化,分配相关资源,设置对象的初始状态。 class 类名 : 继承...

    C++中的构造函数

    1、什么是构造函数:类的同名函数就是构造函数,没有返回值。
    2、什么时候调用,谁调用,调用几次?
    创建类型对象时会被自己调用(每创建一个类对象就会调用一次),对象整个生命周期中一定会被调用一次,只能被调用一次。
    3、负责干什么
    成员变量的初始化,分配相关资源,设置对象的初始状态。
    class 类名 : 继承方式 父类
    {
    // 构造函数
    类名(形参表)
    {
    }
    };

    展开全文
  • ③非周期平稳过程 的自相关函数满足 (7)功率谱密度 已知随机信号 的功率谱 ,求其自相关函数与均方值。 (8)高斯过程和白噪声 ①随机过程的任意n维随机变量,服从高斯分布,则 就是高斯过程。 宽平稳高斯...
  • <p>jsonp(JSON with padding)你一定不会陌生,前端向后端拿数据的方式之一,也是处理跨域请求的得利助手。 我们早已习惯,早已熟练了jQ或者zepto的ajax调用方式。但是有可能还不太它内部具体是...
  • 摘要: 本以为自己栈溢出学的不错了,挑战了一下攻防...rand()函数是使用线性同余法做的,它并不是真的随机数,因为其周期特别长,所以在一定范围内可以看成随机的。 srand()为初始化随机数发生器,用于设置rand...

     摘要:    

        本以为自己栈溢出学的不错了,挑战了一下攻防世界的PWN高手进阶,发现栈溢出还是有很多相关的漏洞,今天总结一下srand()函数的漏洞。

    srand()/rand():

        简单介绍一下这两个函数:

    • rand()函数是使用线性同余法做的,它并不是真的随机数,因为其周期特别长,所以在一定范围内可以看成随机的。
    • srand()为初始化随机数发生器,用于设置rand()产生随机数时的种子。传入的参数seed为unsigned int类型,通常我们会使用time(0)或time(NULL)的返回值作为seed。

        个人理解:当对随机性要求不高的时候可以直接使用rand()函数是没问题的,但是因为其并不是真的随机数,只是在一定范围内是随机的而已,有周期的。但如若设置了随机数发生器,并以时间戳为种子,这样就加强了随机性的强度。

        注:怎么利用这两个函数的风险呢,这里有两个特点,

    • 程序第一次调用rand()之前没有调用srand(),那么系统会为你自动调用srand(),自动调用传参值为1;
    • 使用相同种子(srand函数传参值相同),调用 rand()生成的是相同随机数序列。

    题目:攻防世界(dice_game):

        老样子查看程序信息,可以看到只有金丝雀没有开启:

        拖入IDA64中静态分析:

         可以看到有一个设有时间戳为参数的srand()函数,进入A20函数中查看逻辑:

         分析发现函数逻辑为输入与随机数 % 6 + 1相比,相等返回1,而调用者收到返回1时继续循环,不然break,但是我们需循环50次使v8为50才能拿到flag,而校验函数中每次都是随机生成的,怎么才能猜到rand()每次生成的序列值呢?如果前面的srand的种子为一定值即可猜到随机序列。

        所以此题思路为寻找溢出点,使seed的值为一定值,然后我们在脚本中调用动态库中的srand及rand函数即可。这里又有新的问题了,怎么在脚本中调用动态库中的程序呢,以前是使用plt表+栈溢出进行调用的,本题无法进行上述操作怎么办呢,这里在介绍一个新的python库(人生苦短,我用python),ctypes。。。from ctypes import * 。使用cdll.LoadLibrary('')代替以前的ELF('')即可,调用动态库的函数。

        针对动态库函数的调用个人暂时的理解:什么情况程序在编译前加载了动态库呢,比如我们要使用的print家族、puts、等等未在程序里声明的函数,需要通过引用动态库,里面就有程序不用声明就能进行调用的函数,比如此题的srand与rand,因为未在程序中声明定义,所以就需要用到动态库了。

        回到题目中,因为需要满足50次条件,只需要输入循环50次有序序列(调用50此rand())即可,payload如下:

    from pwn import *
    from ctypes import *
    
    context.log_level = "debug"
    
    p = remote('111.198.29.45',44789)
    #p = process('./dice_game')
    elf = cdll.LoadLibrary('libc.so.6')
    
    payload = 'A' * 64 + p64(1)
    p.recvuntil('Welcome, let me know your name: ')
    p.sendline(payload)
    elf.srand(1)
    
    for i in range(0,50):
        p.recvuntil('Give me the point(1~6): ')
        payload = str(elf.rand() % 6 + 1)
        p.sendline(payload)
    p.recv()
    p.interactive()

        :脚本中有一个坑点,就是sendline()中的参数是字符型的,不能是数字型的,所以数字参数需要str()一下即可。

    总结:

    • 基于srand与rand函数的风险,利用栈溢出随机数发生器参数为定值,使rand生成可预测的序列。
    • PWN也要和逆向一样读懂程序的逻辑,这方面有待加强。
    • 写脚本时候的sendline方法参数是字符型。
    • ctypes包的cdll.LoadLibrary('libc.so.xxx')可以在在脚本中加载动态库,同时又能调用库中的函数。
    展开全文
  • 这个是我最近的一个结课大作业,使自己辛苦做出来的,感觉对做信号的时域还有频谱分析等相关内容的朋友们会有一定的帮助,特此上传,希望有需要的朋友来下载. 文章主要包含6部分内容: 1.已知信号数据 对一个人为...
  • JavaScript 的作用域

    2019-05-16 23:04:24
    本文转https://juejin.im/post/5aa1eb056fb9a028b77a66fd 学了好久的 Javascript 惭愧仍然没有总结完全作用域,今天老夫就来总结...作用域,是指变量的生命周期(一个变量在哪些范围内保持一定值)。 全局变量...
  • 与此同时,提出了塔尔博特效应实际上是光子对周期性空间信息的记忆与再现的过程,从而对光子在光传播过程中携带空间信息产生了一定认识。由于数学处理方法上的简明扼要,所采用的光子学研究方法更易于在基础领域中推广...
  • 1 引言  数字通信时,一般以一定数目的码元组成一个个“字”或“句”,即组成一个个“帧”进行传输,因此帧...所用的帧同步码为巴克码,巴克码是一种具有特殊规律的非周期序列,其局部自相关函数具有尖锐的单峰特性,
  • 1 引言  数字通信时,一般以一定数目的码元组成一个个“字”或“句”,即组成一个个“帧”进行传输,因此帧同步...所用的帧同步码为巴克码,巴克码是一种具有特殊规律的非周期序列,其局部自相关函数具有尖锐的单峰特
  • 1、 引言 数字通信时,一般以一定数目的码元组成一个个“字”或“句”,即组成一个个“帧”进行传输,因此...所用的帧同步码为巴克码,巴克码是一种具有特殊规律的非周期序列,其局部自相关函数具有尖锐的单峰特性,这
  • 常见的 Web IDE 有 AWS 的 Cloud9、阿里云的函数计算 Web IDE、腾讯云的 Cloud Studio。从体验上来说,AWS Cloud9 最好。 <p><a name="9a5b673c"></a></p> 命令行工具 当然,目前最主要的开发方式还是在...
  • delphi 开发经验技巧宝典源码

    热门讨论 2010-08-12 16:47:23
    4.9 文件操作的相关函数 87 0134 使用CopyFile函数复制文件 87 0135 使用CreateDir函数创建一个目录 88 0136 使用FileCreate函数创建一个图形文件 88 0137 使用GetCurrentDir函数返回当前目录 89 0138 在...
  • 4.9 文件操作的相关函数 87 0134 使用CopyFile函数复制文件 87 0135 使用CreateDir函数创建一个目录 88 0136 使用FileCreate函数创建一个图形文件 88 0137 使用GetCurrentDir函数返回当前目录 89 0138 在...
  • 4.9 文件操作的相关函数 87 0134 使用CopyFile函数复制文件 87 0135 使用CreateDir函数创建一个目录 88 0136 使用FileCreate函数创建一个图形文件 88 0137 使用GetCurrentDir函数返回当前目录 89 0138 在...
  • 4.9 文件操作的相关函数 87 0134 使用CopyFile函数复制文件 87 0135 使用CreateDir函数创建一个目录 88 0136 使用FileCreate函数创建一个图形文件 88 0137 使用GetCurrentDir函数返回当前目录 89 0138 在...
  • 4.9 文件操作的相关函数 87 0134 使用CopyFile函数复制文件 87 0135 使用CreateDir函数创建一个目录 88 0136 使用FileCreate函数创建一个图形文件 88 0137 使用GetCurrentDir函数返回当前目录 89 0138 在...
  • 4.9 文件操作的相关函数 87 0134 使用CopyFile函数复制文件 87 0135 使用CreateDir函数创建一个目录 88 0136 使用FileCreate函数创建一个图形文件 88 0137 使用GetCurrentDir函数返回当前目录 89 0138 在...
  • 2试求正弦信号 和基频与之相同的周期方波信号y(t)的互相关函数 。 (10分) 3、某信号的时域表达式如下 , 问: (1) 该信号属于哪类信号(周期或非周期),试画出波形图? (4分) (2) 当该信号通过一理想带通滤波器,该...
  • ARMA谱估计的MATLAB实现

    热门讨论 2010-06-20 16:51:37
    现代谱估计主要是针对经典谱估计(周期图和自相关法)的分辨率低和方差性能不好的问题而提出的。其内容极其丰富,涉及的学科和领域也相当广泛,按是否有参数大致可分为参数模型估计和非参数模型估计,前者有AR模型、MA...
  • LINGO软件的学习

    2009-08-08 22:36:50
    目标函数; min=@sum(links: cost*volume); !需求约束; @for(vendors(J): @sum(warehouses(I): volume(I,J))=demand(J)); !产量约束; @for(warehouses(I): @sum(vendors(J): volume(I,J))(I)); !这里是数据; ...
  • 图像增强的实现

    2012-06-07 15:42:03
    1.1 imhist 函数 功能:计算和显示图像的色彩直方图 格式:imhist(I,n) imhist(X,map) 说明:imhist(I,n) 其中,n 为指定的灰度级数目,缺省值为256;imhist(X,map) 就算和显示索引色图像 X 的直方图,map 为调色板...
  • 4.4.9 JVM内存模型的相关知识了解多少,比如重排序,内存屏障,happen-before,主内存,工作内存等。 4.5.0 简单说说你了解的类加载器,可以打破双亲委派么,怎么打破。 4.5.1 讲讲JAVA的反射机制。 4.5.2 你们...
  • C++ MFC实现飞机大战游戏

    热门讨论 2012-12-04 13:56:26
     //该函数创建与指定的设备环境相关的设备兼容的位图。  bitmap1.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height());  //该函数选择一对象到指定的设备上下文环境中,该新对象替换先前的相同类型的对象。 ...
  •  SessionBean: Stateless Session Bean 的生命周期是由容器决定的,当客户机发出请求要建立一个Bean的实例时,EJB容器不一定要创建一个新的Bean的实例供客户机调用,而是随便找一个现有的实例提供给客户机。...
  • 它不是 Ruby 语言中唯一的框架,但它一定是最有开发效率和最有名的。另一方面,如果你已经花了很大功夫学习 PHP 的话,那么从 Ruby 重新开始又要重头学起。 为 PHP 开发的框架有很多个(大约 40 个),CI 只是其中...

空空如也

空空如也

1 2 3 4 5
收藏数 86
精华内容 34
关键字:

周期函数自相关函数一定是