自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 书生浦语-hello world

本文主要根据InternLM 实战营(第2期)第一课内容对书生大模型进行了下载和试用。

2024-04-01 16:42:28 186

原创 空间约束聚类

概述当我们观察周围的世界时,我们会很自然地对所看到的事物进行组织、分组、区别和划分,以便帮助我们更好地了解周围的一切;这类心理分类过程是学习和理解的基础。同样,为了帮助您了解以及更好地理解数据,您可以使用空间约束多元聚类工具。给定要创建的聚类数,它将寻找一个能够使每个聚类中的所有要素都尽可能相似但各个聚类之间尽可能不同的解。要素相似性是基于您为分析字段参数指定的一组特性,同时还可以包括对于聚类大小的约束。该算法使用的算法采用连通图(最小跨度树)和一种被称为 SKATER 的方法来查找数据中存在的自然聚类以

2021-05-28 13:35:33 2643

原创 空间核密度分析

描述使用核函数根据点或折线要素计算每单位面积的量值以将各个点或折线拟合为光滑锥状表面。在计算核密度时,可以使用障碍来改变要素的影响。工作原理核密度分析用于计算每个输出栅格像元周围的点要素的密度。概念上,每个点上方均覆盖着一个平滑曲面。在点所在位置处表面值最高,随着与点的距离的增大表面值逐渐减小,在与点的距离等于搜索半径的位置处表面值为零。仅允许使用圆形邻域。曲面与下方的平面所围成的空间的体积等于此点的 Population 字段值,如果将此字段值指定为 NONE 则体积为 1。每个输出栅格像元的密度

2021-05-27 20:26:20 11945 4

原创 抽签问题

问题描述考试时有N张考签,n个学生参加考试(n>N),抽过的考签被放回,求至少一张考签没有被抽到的概率。思路

2021-05-01 21:41:08 621

原创 几何分布概率证明应用

问题描述求证以上等式成立,其中A,a都是正整数。解法设袋中有A个球,其中a个为白球,则首次摸到白球的概率为:由于袋中有a个白球,A-a个黑球,如果一开始总是取到黑球,直到把黑球取完为止,最迟到A-a+1次一定取到白球。等式两边同乘以A/a即可得证。...

2021-04-29 19:52:48 345

原创 升序摸球问题

问题描述在装有1,2,…,N号球的N个箱子中,有放回地摸n次,并记下这些球地序号。序号次序严格上升(简单组合问题)序号非严格上升(重复组合问题)

2021-04-28 22:07:15 449

原创 贝特朗奇论

问题描述在半径为1的圆内随机取一条弦,求弦长大于等边三角形边长的概率。解法一固定一点,确定另一点使其大于内接正三角形边长。如图a所示,其概率为1/3。解法二根据弦的中点到圆点的距离来确定。如图b所示,其概率为1/2。解法三根据弦的中点在圆内位置来确定,当期位于黑色阴影部分时满足条件。如图c所示,其概率为1/4。总结三种解法主要差异在于其等可能性假定不同。第一种解法假定端点在圆周上均匀分布,第二种假定弦中点在直径上均匀分布,第三种假定弦的中点在圆内均匀分布。按各自假定来看,三种解法均为正确

2021-04-27 17:21:58 888

原创 摸球问题

问题描述口袋中有a只黑球和b只白球,它们除颜色不同外没有其他区别。现在将球一只只随机取出,求第k次取出是黑球的概率。排列将a只白球和b只黑球都看作是不同的,若把a+b个球排列在一条直线上,则共有(a+b)!种排列方法。考虑有利于第k次为黑球的情况,则除第k个位置为黑球共有a种情况,其余a+b-1个球排列共(a+b-1)!种排列方法。因此,共有a(a+b-1)!种情况。组合将同种颜色的球看作相同,同样将a+b个球放置在一条直线上。此时,当b个白球的位置取定时,黑球的位置也随之确定。那么总共有种情

2021-04-26 20:37:40 3510 2

原创 类的继承方式

从基类继承的成员,其访问属性可以由继承方式控制。类的成员可以有public、protected和private三种方式。类的继承方式也可以有public、protected和private三种。不同的继承方式导致原来具有不同访问属性的基类成员在派生类中的访问属性也有所不同。当类的继承方式为公有继承时,基类的公有成员和保护成员的访问属性在派生类中不变,而基类中的私有成员不可以直接访问。当类的继承方式为私有继承时,基类中公有成员和保护成员的访问属性都以私有成员身份出现在派生类中,而基类中的私有成员不可以直

2021-04-25 22:54:55 920

原创 指针与引用

指针与引用有许多相似之处,如都可以使用它们作为形参,都可以通过该参数修改函数中的变量以达到参数双向传递的作用,都可以避免值的复制从而减少函数数据传递的开销。引用和指针变量存储的都是被引用变量的内存地址。但是指针是一种较为底层的机制,而引用是一种较为高级的机制。在具体的实现机制中,两者殊途同归都需要借助地址。此外,指针可以多次改变它所指向的地址,而引用只能在初始化的时候指定被引用的对象。因此,引用的作用和指针常量差不多。使用指针作为函数参数,在主调函数中需要用&操作符传递参数,在被调函数中使用*操

2021-04-24 21:54:53 76

原创 经济时间序列

上图为德国1960至2011年的实际国内生产总值GDP,可以发现这一序列在长期内逐步增长,也就是说有一个正的趋势。另一方面,一年内存在显著的季节性变动。此外,在1990年之后存在结构性变化,这是因为1990年之后德国统一,因此GDP上升较为明显。上图是GDP数据季度之间的差分序列,可以发现通过差分,时间序列的长期趋势得以消除,但是季节性变化依旧存在。分析季度到季度的变化率,可以使用季度增长率来表示:但是这个指标存在一个缺陷,即正向和负向变化的不对称性。比如,从100上升到125,qgr=25%,.

2021-04-23 16:07:50 726

原创 卡方检验

卡方检验是一种非参检验方法,用于两个分类变量的关联性。根本思想在于比较理论频数和实际频数的吻合度或者拟合优度。原理卡方检验以卡方分布作为基础,其假设为:其基本思想为假设原假设成立,计算卡方值,卡方值度量了观察频数与期望频数之间的偏离程度。如果卡方值较大,那么说明偏离程度较大,我们有理由拒绝原假设从而接受备择假设。卡方值计算令Ai代表该类别情况下的实际频数,Ei表示原假设成立条件下的期望频数。用途检验某个连续变量或者离散变量是否与某种理论分布接近,即分布拟合检验;检验类别变量之间是否存在

2021-04-22 10:15:09 894

原创 代码的编译执行与连接

编译编译对每个cpp源文件进行分别处理,生成.o目标文件。目标文件用来描述程序在运行过程中需要放在内存中的内容,内容包含两大部分代码和数据,因此目标文件包括代码段和数据段。代码段代码段包含源文件中定义的各个函数编译后得到的目标代码。数据段数据段中包含源文件中定义的各个静态生存期对象的描述。数据段又分为初始化的数据段.data和未初始化的数据段.bss。对于初始化的静态生存期对象,需要在目标文件中提供相应的空间存放其初值。未初始化的静态生存期对象,只需记录这个段的大小。符号表符号表用来

2021-04-21 17:16:40 225

原创 高楼扔鸡蛋-另解

问题求解的是当拥有k个鸡蛋和N层楼可供测试时,所需的最少扔鸡蛋个数m。那么存在这样的的一种思路:在k不变的情况下,由于m的增加必然会增加测试的楼层数,那么我们可以通过(k,m)状态下所需的楼层数来进行求解。当所需测试楼层数=N时,我们便可以得到最少扔鸡蛋个数。import numpy as npdef egg_break(N, k): """ :param N: 总楼层数 :param k: 鸡蛋个数 :return: 最坏情况下扔鸡蛋个数 """

2021-04-20 17:13:06 67

原创 野指针和悬空指针

野指针野指针 就是不确定具体指向的指针,通常是没有初始化的指针。int *p;//野指针悬空指针指向被释放内存的指针。int *p = 1;free(p);//现在是悬空指针p = NULL;//为了避免出现这种错误,在释放内存后通常将其赋值为NULLint main(){ char *p = NULL; for(i=0;i<1;i++){ char c;//c的生命周期在局部 p = &c; } //此时p成为了悬空指针}...

2021-04-20 10:43:30 116

原创 C++各种类型常量

常对象class c{public: c(int i,int j){ x = i; y = j; } private: int x,y;};c const b(1,2); //无法更新常对象b常成员函数使用const关键字说明的函数;不更新对象的数据成员;const关键字可以被用于参与对重载函数的区分;通过常对象只能调用其常成员函数;#include <iostream>using namespace std;class R{public: R

2021-04-19 20:54:22 391

原创 高楼扔鸡蛋-二分法优化

import numpy as npdef egg_break(N, k): table = dict() def dp(N, k): if N == 0: return 0 if k == 1: return N if (N, k) in table: return table[(N, k)] res = np.inf low =

2021-04-18 21:50:12 110

原创 友元

类能够将数据和处理数据的函数封装在一起,从而实现数据的共享与隐藏。但有时候我们需要让其他类或者函数访问到类中隐藏的数据或者函数,友元就能够帮助我们完成这一需求。友元提供了一种在不同类的成员函数与一般函数之间数据共享方式。友元函数友元函数是在类中用关键字friend修饰的函数,可以访问该类中的私有成员和保护成员。友元类友元类是在类中用关键字friend修饰的类,可以访问该类中的私有成员和保护成员,且类中的所有函数都为另一个类的友元函数。#include <iostream>using

2021-04-17 12:59:07 67

原创 高楼扔鸡蛋-动态规划求解

问题描述假设存在一栋共N层高的楼,存在K个鸡蛋。存在在0~N之间存在一层楼F,使得从楼层F扔下时恰好可以使鸡蛋碎开。也就是说当楼层数低于F时,扔下的鸡蛋无法裂开。现在求解最坏情况下,最少的扔鸡蛋数。思路对于特定的一个扔鸡蛋时刻,存在两个参数描述这个动作,假设当前手上的鸡蛋个数k,以及所在的楼层数i。当在特定参数(i,k)情形下做出扔鸡蛋这个动作,我们可能会得到两种情况,分别是碎与不碎。对于碎这种情况,意味着我们需要从下面的i-1层中寻找,此时鸡蛋个数为k-1,参数变为(i-1,k-1);反之,应当从上

2021-04-16 09:14:43 202

原创 对象的生存期

对象有诞生和消亡的时刻,对象从诞生到结束的时间就是其生存期。在生存期内对象将保持其状态,变量将保持其值不变。对象的生存期可以分为静态生存期和动态生存期两种。静态生存期静态生存期与程序的运行期相同,在命名空间作用域声明的对象都是具有静态生存周期,在函数的局部作用域可以通过关键字static来声明。不会每次函数调用都生成一个副本;不会随着函数返回而失效;变量可以在每次调用间共享;动态生存期动态生存期产生于声明点,结束于声明所在的块执行完毕之时。#include <iostream&gt

2021-04-15 11:26:37 851

原创 编辑距离-动态规划

问题存在两个字符串s1:apple,s2:app,

2021-04-14 19:18:13 64

原创 构造函数与析构函数

# include<iostream>using namespace std;class Box{ public: Box(double length=1.0,double width=2.0,double height=3.0) { cout << "constructor called" << endl; this -> length = length; th.

2021-04-13 15:49:31 53

原创 面向对象

面向对象程序的主要特点是:抽象、封装、继承和多态。抽象抽象是指对具体问题进行概括,抽出一类对象的公共性质并加以描述。抽象通常包括两个方面:面向数据抽象和面向行为抽象。比如,不同的箱子拥有相同的属性长、宽、高,这可以被视作面向数据抽象。我们也可以根据箱子这些属性求得其面积或者体积,这可以视作面向行为抽象。封装封装就是将抽象得到的数据和行为相结合,形成一个整体(类)。对于一个类而言,其数据和函数都是其成员。class Box{public: void set(int l,int w,int h);

2021-04-12 16:49:58 42

原创 联合(共用体)

程序中有时会使用一个变量来处理不同的数据类型,对这种情况可以使用联合。联合由关键字union定义,也称共用体。union un{ char c; int i; float f; double d;};un x;x.c = 'a';//其他成员不可用x.d = 3.14;//覆盖了成员c的内容union的每个成员都从联合变量的首地址开始存储;每次只能使用一个成员;union可以节省空间;容易出错;...

2021-04-11 14:55:37 70

原创 结构体

概念结构体将一组来自不同类型的数据组合在一起构成复合类型,其中每个数据都是结构体的成员。struct st{ char c; int i;};st s;访问结构体类型的变量通过.来访问;结构体类型的指针通过->来访问;st* ps = &s;//ps为结构体类型的指针s.c = 'a';s.i = 2;ps->i;//通过结构体类型指针来引用成员i内存占用编译器为了提高访问效率,采用边界对齐技术,计算机指令是以机器指令为单位在内存中存取数据的。以3

2021-04-10 21:43:28 62

原创 伽马分布

2021-04-09 22:35:46 1190

翻译 时间序列的动态加权规整二

2021-04-08 14:12:59 454

翻译 时间序列分类的加权动态时间规整一

时间序列分类的加权动态时间规整摘要动态时间扭曲(DTW),它通过提供非线性对齐来找到最小路径在两个时间序列之间,已被广泛用作时间序列分类的距离度量和聚类。但是,DTW并未考虑相位差的相对重要性在参考点和测试点之间。这可能会导致分类错误,尤其是在应用程序中其中两个序列之间的形状相似性是准确识别的主要考虑因素。因此,我们提出了一种新颖的距离测度,称为加权DTW(WDTW),它是基于惩罚的DTW。我们的方法对参考点和参考点之间具有较高相位差的点进行惩罚为了防止离群值引起的最小距离失真,请使用测试点。基本原理一

2021-04-06 17:39:44 1057

原创 声明和头文件

一个C++程序由多个文件组成,源文件后缀一般为cpp,头文件后缀为h。C++语言的编译器通常采用分别编译的方式,以源文件为单位进行编译。分别编译是指先分别编译各个源文件中的程序段,生成各自的目标程序,最后通过链接器将各段目标程序连接成一个完整的可执行程序。多文件编译优点支持大型程序创建,易于并行开发;易于修改,某段代码出现错误不需要重新编译整个程序;便于代码复用;声明和头文件包含全局变量和函数可以在程序的所有源文件中使用。在一个源文件中使用其他文件中定义的全局变量需要对它们进行声明。而头文件

2021-04-05 13:02:58 390

原创 static数据成员

静态数据被看作类类型内的全局变量。对于非静态数据成员,每个对象都有自己的副本,而静态数据成员在整个类种只有一份,可以被类的所有对象共享访问。与全局变量相比,静态数据成员有以下两个优点:静态数据成员没有进入程序的全局作用域,只是在类的作用域内;可以实现信息隐藏,静态成员可以是private成员,而全局变量则不能;class obj{ static int cnt;//静态数据成员 public: //构造函数中应当存在cnt obj(){cnt++;} ~obj(){cnt--;}

2021-04-04 10:18:31 657

原创 new和delete

在C++中对象既可以动态分配内存,也可以静态分配内存。静态分配:在程序运行之前进行,分配效率较高;动态分配:用于存储未知数目的元素,灵活性较高;动机程序不知道自己需要使用多少对象;程序不知道所需对象的准确类型;程序需要在多个对象间共享数据;区别静态对象有名字,而动态对象没有名字;静态对象可以直接操作,动态对象需要通过指针间接操作;静态对象空间的处理与释放由编译器自动处理,而动态对象的空间分配与释放需要程序员显示处理;newnew运算符在堆上分配空间,创建对象,

2021-04-03 17:40:37 68

原创 比价关系测算

比价关系是构建整体估价体系的核心与基础。基于比价关系,可以将城市的房地产彼此相互联系,从而形成一个关系网络。通常关联联系体现在类似的房地产之间,及类似房地产集合内部;对于属性差异较大的值来说,价格关联关系就隐藏的较深。比价关系的内涵微观经济学中,商品的价格变化引起该商品的需求量的变化,变化可以被分解为收入效应和替代效应。任何一种商品或多或少都可以找到较为相似的替代品,替代品之间具有一定的相似性和可替代性。对于某种商品而言,比如款式相同但品牌不同的衣服,配置相同但定位不同的手机,都会导致其价格有所不同。

2021-04-02 14:33:50 773

原创 对象指针

对象在初始化后都会在内存空间中占有一定空间;既可以通过变量名也可以通过对象地址来访问对象;对象同时包含函数与数据;对象所占据的内存空间只是用于存放数据成员;访问对象成员对象指针名 -> 成员名;类名 * 对象指针名;对象指针使用前需要将其初始化,初始化一个声明过的对象;通过对象指针可以访问对象的公有成员;...

2021-04-01 20:23:03 89

原创 形参与函数指针

强行指针输出数组元素# include<iostream>using namespace std;int main(){ int arr[3][3] = {{1,2,3},{4,5,6},{7,8,9}}; for(int i=0;i<3;i++){ for(int j=0;j<3;j++){ cout << *(*(arr+i)+j) << " "; } cout << endl; } return 0;

2021-03-31 16:14:47 161

原创 各种类型的指针

规则地址中存放的数据类型与指针类型相同;指针变量的赋值必须是地址常量或者变量,不能是整数;可以使用0作为空指针;指针类型表示所指向的数据的类型而非其自身类型;void类型的指针,该对象可以被赋予任意类型对象的地址;指向常量的指针不能通过指针来改变所指对象的值,但指针本身可以改变,可以指向另外的地址;int a;const int *p = &a;*p = 1;//报错,无法修改所指向变量的值int b;p = &b;//正确,可以修改指针变量存储的值指针类型

2021-03-30 15:47:11 801

原创 指针基础

概念指针:内存地址,用于间接访问内存单元;指针变量:专门用于存放地址的变量;初始化存储类型 数据类型 *指针名 = 初始地址;int a;int *ptr = &a; 整型指针变量ptr存储整形变量a的地址;其中&为地址运算符,&a即获取变量a在内存中的起始地址。注意事项用变量地址作为初值时,该变量必须在指针初始化之前声明过,且变量类型与指针类型一致。可以用一个已赋初值的指针来初始化另一个指针变量。不能用一个内部auto变量的去初始化static指针

2021-03-29 23:52:14 50

原创 DTW距离

DTW(dynamic-time-wraping)当两个时间序列等长时,我们可以使用欧氏距离来度量两者的相似性。但是当两个时间序列不等长时,欧氏距离就难以度量两者的相似性了。因此,国外学者提出了动态时间弯曲距离(Dynamic time warping,DTW) 作为一种新的相似性度量方法,通过调节时间点之间的对应关系,能够寻找两个任意长时间序列中数据之间的最佳匹配路径,对噪声有很强的鲁棒性,可以更有效地度量时间序列的相似性。由于DTW距离不要求两个时间序列中的点一一对应,因此具有更广的适用范围。但不可否

2021-03-28 11:41:55 5202

原创 打印前五十个素数

步骤判断一个数是否为素数;若number不是素数则在2,3,…,number/2之间必有一个数能将其整除;依次判断每个数;统计为素数的个数;每行打印十个素数;C++实现输出

2021-03-27 16:34:48 161

原创 回文数判断

定义回文数是指各位数字左右对称的数,如121,131,11等。目标寻找11~999之间的数字m,使得其满足m、mm、mm*m均为回文数。思路使用除以10取余的方法,从低位开始至高位;以低位充当高位反序形成新的数字;比较生成数字与原数字是否相等;C++实现输出结果...

2021-03-26 16:49:13 1167

原创 DIN

2021-03-25 19:34:21 62

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除