自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 插值1算法

插值是指通过对数据进行线性、非线性或其他类型的逼近,将一组离散数据映射到连续的函数值。在数学中,插值通常用于将数据点连接起来,以形成连续的函数图像,特别是在数值计算和图像处理中。插值可以用于在空间中预测对象的位置、速度和加速度,以及在其他领域中实现其他类型的预测和模拟。φ(xi)=yi\varphi (x_{i})=y_{i}φ(xi​)=yi​(1-1)f(xi)=yif(x_{i})=y_{i}f(xi​)=yi​ (1-2)其中,f(x) 称为被插函数;φ(x)\varphi (x)φ(x) 称为

2023-04-23 21:08:05 333 1

原创 算法题——洛谷2

九九乘法表是学习乘法时必须要掌握的。在不同进制数下,需要不同的乘法表。请注意,乘法表中两个数相乘的顺序必须为样例中所示的顺序,不能随意交换两个乘数。给定P,请输出P进制下的乘法表。

2023-04-07 12:17:22 180

原创 算法题——洛谷1

给定n个整数a1​a2​⋯an​, 求它们两两相乘再相加的和,即Sa1​⋅a2​a1​⋅a3​⋯a1​⋅an​a2​⋅a3​⋯an−2​⋅an−1​an−2​⋅an​an−1​⋅an​。

2023-04-04 23:03:53 303

原创 算法优化-

单调栈 (Monotone Stack) 是一种栈的数据结构,它的每个节点都必须按照递增的顺序存储数据,即栈中的元素都必须按照递增的顺序排列。同时,栈顶元素必须是一个单调递增的元素,即如果栈中有两个元素,一个元素比另一个元素大,那么前者必须是栈顶元素,后者则是次栈顶元素。单调栈是一种栈的数据结构,它的每个节点都必须按照递增的顺序存储数据,即栈中的元素都必须按照递增的顺序排列。同时,栈顶元素必须是一个单调递增的元素,即如果栈中有两个元素,一个元素比另一个元素大,那么前者必须是栈顶元素,后者则是次栈顶元素。

2023-04-03 22:09:54 89

原创 Python 类的初始化

在 Python 中,类的定义中通常包含一个构造函数,它是自动调用的,以便初始化类的属性和方法。在 Python 中,类的定义通常包含一个构造函数,它用于初始化类的属性和方法。在构造函数中,可以使用 self 关键字来引用类的当前实例,并且可以访问类的属性和方法。在这个方法中,可以使用 self 关键字来引用类的当前实例,并调用其他方法或属性来初始化类的属性和方法。这是因为在 Python 中,双下划线表示一个特殊的方法,用于初始化类的属性和方法。构造函数是一个特殊的方法,用于初始化类的属性和方法。

2023-04-03 22:08:23 3087

原创 线性方程组的求解

(Gaussian elimination)是求解线性方程组的一种常用方法。它的基本思想是通过一系列的行变换将增广矩阵(包含系数矩阵和常数矩阵)化为阶梯形矩阵,然后通过回代求解未知量。①. 将第一行首个非零元素作为主元素,用主元素消掉第一列中下面所有元素;②. 将第二行首个非零元素作为主元素,用主元素消掉第二列中下面所有元素;③. 重复此步骤,直至所有行变成上三角矩阵,即矩阵。通过这种方法可以求得线性方程组的解。行的第一个非零元素将第。①. 对最后一个未知量。

2023-03-23 22:41:55 898 1

原创 python中的deque

deque(全称为"double-ended queue",即双端队列)是Python的collections模块中的一个类,它提供了一个可变序列,支持从两端进行快速的添加和删除元素操作。下面是deque。

2023-03-22 22:50:16 448

原创 快速幂、树状数组、线段树、优先队列

其中,2^5、2^3、2^2、2^0分别表示二进制数101101中为1的位所对应的幂次。上式中每个乘积都可以通过不断平方得到,例如a^(2^5)可以通过不断将a平方5次得到。快速幂是一种用于快速计算一个数的整数次幂的算法。在这个实现中,我们使用了while循环和位运算来对指数进行二进制拆分,并使用了一个变量result来记录每个乘积的结果。使用这种方法,计算a的n次幂的时间复杂度为O(logn),比直接计算a^n的时间复杂度O(n)要快得多。

2023-03-20 22:33:56 52

原创 香农公式和奈氏准则描述的是同一个东西吗?

香农公式是一个理论公式,描述了在没有噪声干扰的情况下,数据传输速率和信道带宽之间的关系。它表明,当信噪比越高,数据传输速率就越快。香农公式可以表示为:C = B log2(1 + S/N),其中C是信道容量(即数据传输速率),B是信道带宽,S是信号功率,N是噪声功率。与香农公式不同的是,奈氏准则考虑了信道噪声的影响,并且它是基于实验和经验得出的。因此,香农公式和奈氏准则虽然都是描述数字通信中信噪比和数据传输速率之间的关系,但它们描述的方面略有不同,可以看作是两种不同的理论基础。

2023-03-19 16:43:53 626

原创 python绘图相关

一个简单的绘图操作。

2023-03-17 15:01:58 119

原创 数值分析——关于非线性方程求根的迭代法

在函数的主体中,我们使用Steffensen算法的核心公式来迭代计算,直到收敛或达到最大迭代次数为止。Aitken算法是一种加速级数收敛的方法,适用于递推计算和迭代解法,其核心思想是通过利用级数中的部分和之间的线性关系来加速收敛。Steffensen算法是一种用于数值解的迭代方法,用于求解非线性方程,其核心思想是通过利用连续迭代的信息来加速收敛。表示最大迭代次数,如果算法无法在指定的迭代次数内收敛,它会引发一个ValueError异常。表示算法的收敛容差,即算法停止迭代的条件。在函数的主体中,我们首先从。

2023-03-16 21:36:37 3122

原创 高度频谱的实现

按照公式计算,首先将第一个复数的实部a乘以第二个复数的实部c,得到ac;将第一个复数的虚部b乘以第二个复数的虚部d,得到bd;接下来,将第一个复数的实部a乘以第二个复数的虚部d,得到ad;将第一个复数的虚部b乘以第二个复数的实部c,得到bc;然后将这两个结果相加,得到ad + bc。最后,将这两个结果合并,得到最终的复数值。其中,a、b、c和d都是实数,i是虚数单位。复数可以表示为a + bi的形式,其中a是实部,b是虚部。因此,(3 + 2i) × (1 + 4i) = -5 + 14i。

2023-03-15 11:38:27 145

原创 unity 计算着色器

计算着色器(Compute Shader)中的线程数是三维的,是为了更好地利用GPU的并行计算能力,同时也能满足各种不同的计算任务的需求。在计算着色器中,线程数的三个维度分别代表了X轴、Y轴和Z轴方向上的线程数量,可以用[numthreads(x, y, z)]语句来设置线程数量。这种三维的线程模型可以让计算着色器中的内核函数同时处理多个维度的数据,从而提高计算效率和性能表现。例如,在图像处理中,可以将图像的每个像素作为计算着色器中的一个线程,将线程数设置为图像的宽度、高度和深度,从而同时处理整个图像。

2023-03-15 11:18:40 331

原创 算法 贪心算法

具体来说,如果一个问题具有最优子结构性质,那么我们可以使用贪心算法来求解它,因为在贪心算法中,我们每次都选择当前最优的解,这个解也是子问题的最优解,因此可以用来构造全局最优解。具体来说,如果在贪心算法中每一步都选择当前最优的解,那么在到达最终解之前,所有的中间状态都是局部最优的,因此最终得到的解也是全局最优的。贪心选择性质是指在求解最优解的过程中,每一步所做的贪心选择都应该是当前最优的选择。总之,贪心选择性质和最优子结构性质是贪心算法能够使用的两个重要性质,它们保证了贪心算法可以得到问题的全局最优解。

2023-03-14 22:29:49 59

原创 鲽形网络算法

O(k),其中E(k)和O(k)分别表示偶数点序列和奇数点序列在第k个位置上的值,W(k,N)表示旋转因子,其计算方式为W(k,N) = exp(-2。将新的序列分成偶数点序列和奇数点序列,分别进行FFT计算。将得到的两个FFT序列进行合并,得到新的FFT序列,其中第k个元素的计算方式为:X(k) = E(k) + W(k,N)将新的采样序列分成两个部分,一部分为偶数点序列,另一部分为奇数点序列,分别进行FFT计算;将得到的偶数点FFT序列和奇数点FFT序列合并,得到新的FFT序列。Step 1:位反转。

2023-03-14 20:10:40 244

原创 为什么相反数难以实现递归?

但是,如果我们试图用递归的方式来计算相反数,我们会遇到无限递归的问题,因为我们需要计算-x,然后计算-y,然后计算-(-x),然后计算-(-y),以此类推,这个过程永远不会结束。通过这个定义,我们可以看出,如果我们将一个复数的虚部取相反数,就得到了它的相反数。复数可以用来实现递归的原因在于,复数中有一个重要的概念叫做共轭,通过共轭我们可以轻松地实现相反数的操作。需要注意的是,并非所有的数学运算都可以通过复数来实现递归,因此这种方法并不是适用于所有情况的通用解决方案,需要具体问题具体分析。

2023-03-14 19:01:03 119

原创 搜索算法——深度优先、广度优先

函数使用栈来实现深度优先搜索。它从起始节点开始,将其入栈。然后进入一个循环,弹出栈顶节点,如果该节点没有被访问过,则输出该节点,将其添加到已访问集合中,并将其邻居节点压入栈中。循环继续,直到栈为空。深度优先搜索(DFS)是一种用于图遍历或树遍历的算法。它的核心思想是尽可能地向深度方向遍历,直到到达最深处,然后返回上一个节点,继续向另一个方向遍历。如果当前节点没有被访问过,则输出该节点,将其添加到已访问集合中,并递归访问其邻居节点。深度优先搜索的实现可以使用递归或栈(迭代版本)来实现。

2023-03-13 21:58:08 2540

原创 Python列表推导式

在 Python 中,列表推导式(List comprehension)是一种简洁的语法,可以方便地创建列表。的值,并将这个值添加到矩阵中的相应位置。表示使用两个嵌套的列表推导式,对于。的值,并将这个值添加到列表中。的值并将其添加到列表中。

2023-03-13 19:42:29 415

原创 三分法、二分法、尺取法、前缀和、差分

其基本思想是将区间按照三等分划分,然后根据函数值的大小关系判断极值可能存在的区间,并缩小搜索区间的范围。三分法的时间复杂度为 O(log(n)),其中 n 为精度要求需要的迭代次数。三分法比二分法的迭代次数更少,但每次迭代需要计算两个函数值,因此总的计算量可能更大。计算区间的中点 m1 和 m2,即将区间 [a, b] 分成三等分,其中 m1 = (2a + b) / 3,m2 = (a + 2b) / 3。分别计算函数在 m1 和 m2 处的取值 f(m1) 和 f(m2)。

2023-03-13 17:56:46 779

原创 新印象unity第九章笔记--游戏界面系统

画布是UI的容器;EventSystem物体:用于监听与UI交互的输入事件;画布中的控件根据层级顺序进行遮挡,下层遮挡上层;

2023-02-26 17:18:17 144

原创 新印象unity第八章笔记--导航系统

重要参数:代理半径:半径越小,烘焙后的网格区域面积越大代理高度:会影响烘焙后的门或桥洞等的高度是否能供物体通过最大坡度:可以走上去的最大坡度步高:可以走上去的最大台阶高度掉落高度:允许的掉落高度跳跃距离:允许在网格间跳跃的最大距离。

2023-02-26 16:07:29 144

原创 新印象unity第七章笔记--动画系统

重要参数:动画:默认使用的动画剪辑Animation:可以使用的动画剪辑数组Play Automatically:勾选后会自动播放默认的动画剪辑Animate Physics:勾选后动画将使用物理循环来驱动Culling Type:控制动画组件的剔除方式总是动画化:即使离开屏幕,动画依旧执行,不会进行动画剔除BasedOnRenderers:当渲染不可见时,动画将被禁用。

2023-02-22 21:01:02 229

原创 Python初学习

复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。默认输出是换行的,如果要实现不换行需要在变量末尾加上 , end=""导入某个模块中的全部函数: from modulename import *空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始;使用三引号(''' 或 """)可以指定一个多行字符串;语句很长则使用 \ 来实现多行语句;无大括号,同一代码块,相同缩进数。

2023-02-21 22:13:07 50

原创 新印象unity第六章笔记--粒子系统

粒子系统由粒子和发射器两部分构成。

2023-02-20 11:20:00 480

原创 unity屏幕后处理

vert_img unity内置后处理顶点函数;v2f_img unity内置后处理结构体色相调整HSV的r通道,进行一定的偏移再转回rgb饱和度伽马空间点乘的数值: 0.22, 0.707, 0.071pow用来增加对比度,0-1的范围且pow越多会让数值更靠0(更多的是黑色)

2023-02-19 08:59:38 306

原创 新印象unity第五章笔记--物理系统

Mass:质量(kg)Drag:阻力;用于表示物体移动时会受到的空气阻力,0为不受阻力影响AngularDrag:角阻力;用于表示当物体根据扭矩旋转时受到的空气阻力大小UseGravity:是否使用重力IsKinematic:运动学;刚体不会受到物理特性的影响,但是仍然可以触发物理检测等功能Interpolate:插值;CollisionDetection:碰撞检测;constraints :冻结;冻结刚体在某个轴向的移动或旋转。

2023-02-09 23:08:10 328

原创 新印象unity第四章笔记--游戏场景

静态?

2023-02-08 22:02:59 140

原创 新印象unity第二、三章笔记--脚本与细节

左手坐标系 左手坐标系右手坐标系。

2023-02-07 23:00:54 270

原创 unity Build-in 光源和光照模型

前向渲染:每个物体都有可能被重复渲染,即基于物体的光源渲染;超出灯光设置数量被当作顶点光(6*6)延迟渲染:基于光源的物体渲染;以灯光为单位,先计算灯光所需东西,如RT0为漫反射,RT1为金属度,RT2为法线图;对于多光源友好(6+6);区别:延迟渲染需要MRT技术(multi render target)和空间容量大。

2023-02-06 14:40:28 894

原创 C++引用

结论:C++推荐用引用技术,因为语法方便,引用本质是指针常量,但是所有的指针操作编译器都帮我们做了。总结:通过引用参数产生的效果同按地址传递是一样的。引用的语法更清楚简单。在函数形参列表中,可以加==const修饰形参==,防止形参改变实参。函数传参时,可以利用引用的技术让形参修饰实参。作用:引用是可以作为函数的返回值存在的。常量引用主要用来修饰形参,防止误操作。引用在初始化后,不可以改变。用法:函数调用作为左值。可以简化指针修改实参。

2023-02-01 13:08:56 43

原创 C++三大特性

我们将属性和行为封装成一个整体,来表现生活中的事物。比方说,汽车类,那么这个类中可能就有引擎、油箱、水箱、涡轮、外壳和车轮等属性,有加速、减速、刹车和开关灯等行为。

2023-01-31 13:43:04 202

原创 Matcap与菲涅尔

菲尼尔效果(简化版公式):fresnel = base + scale*((1-v*n)^power)透明队列为后前渲染,不关闭深度写入则会覆盖之前的像素,导致混合不了。y的值为0~1,根据x3返回对应y值。两色混合做个demo看看!混合为什么要关闭深度写入?

2023-01-12 17:44:19 116

原创 Unity渲染管线

不透明队列2500:顺序后前,得到真正的混合效果。前言:基于unity渲染管线,其他图形api可能有所差异。4.片元:顶点插值而成。3.图元:顶点心连心。

2023-01-11 16:36:28 74

原创 斐波拉契数列算法

试编写求k阶裴波那契序列的第m项值的函数算法,k和m均以值调用的形式在函数参数表中出现。4、从第k+1个数起,每个数都是其前k个数之和。/* 如果能求得k阶斐波那契序列的第m项的值f,则返回OK;/ 否则(比如,参数k和m不合理)返回ERROR */1、k为大于等于2的整数;2、前k-1个数为0;已知k阶裴波那契序列的定义为。...

2022-08-30 21:08:39 173

原创 数学建模|层次分析法笔记

层次结构图可使用PPT的SmartArt或者亿图图示软件。由目标、方案、指标三部分组成。数据统计使用Excel软件。判断矩阵:每列归一化再平均。一致矩阵:第一列归一化。

2022-08-27 20:27:20 1919

原创 FFT海浪模拟

根据推导可知,我们需要蝶形运算,并且采样点(或者说波数)是2的整数次幂。同时需要注意的是,蝶形运算会顺序输入、倒序输出,倒序输入、顺序输出。可见,要想得到高度频谱,我们不仅需要高斯随机数,还需要phillips频谱(方向波谱),其中公式中的k箭头是波长向量,k是波长向量的模。最后,我们就可以根据高度频谱生成对应的x\z位移频谱。下图是高斯随机数与phillips频谱生成高度频谱的流程。如下是根据高度频谱实现FFT海浪模拟的全部过程。主要流程如下可见,首要的事情是生成高度频谱。............

2022-07-28 10:21:55 887

原创 D3D计算着色器入门

计算着色器跟他的名字一样,就是进行计算的着色器。但是它的用途不仅局限于图形的运算,也可以进行通用的运算。计算着色器的计算能力非常强,这就使得在gpu进行通用运算后再传输回cpu,比直接在cpu中运算花费的时间更短。计算着色器不属于渲染管线,但可以对任意阶段进行读取操作。...

2022-07-24 15:46:33 565

原创 关于对齐次裁剪空间及HLSL语义的理解

之前对HLSL语义及使用仅了解一点点,后面再学习的时候,发现忘得差不多,想不起来大概,所以又重新屡了一遍思路。

2022-07-19 10:37:41 854

转载 背面剔除|无剔除模式与透明物体的绘制

对于正交投影,眼睛位置的向量被替换为负视图方向,这对于场景是恒定的,计算这个向量和三角形的法向量的点积,点积为负意味着两个向量之间的夹角大于π/2弧度,所以三角形不是面向观察者的,这个测试等价于计算从观察者的位置到三角形平面的标记距离,如果符号是正的,三角形是正面的。Shirman和Abi-Ezzi证明,如果观察者面向锥体,那么锥体中的所有面都是面向前的,面向后的锥体也是如此,Engel使用了一个类似的概念,称为GPU剔除的排除体积。左边的两个三角形是正面的,右边的三角形是背面的,可以剔除。...

2022-07-18 16:57:34 391

原创 C++赋值函数|移动赋值函数|移动构造函数

C++赋值函数|移动赋值函数|移动构造函数

2022-07-14 09:56:24 2552

空空如也

空空如也

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

TA关注的人

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