密码学分为两类密码:对称密码和非对称密码。
对称密码主要用于数据的加/解密,而非对称密码则主要用于认证、数字签名等场合。
非对称密码在加密和解密时,是把加密的数据当作一个大的正整数来处理,这样就涉及到大整数的加、减、乘、除和指数运算等,同时,还需要对大整数进行输出。
请采用相应的数据结构实现大整数的加、减、乘、除和指数运算,以及大整数的输入和输出。
【基本要求】1.要求采用链表来实现大整数的存储和运算,不允许使用标准模板类的链表类(list)和函数。
同时要求可以从键盘输入大整数,也可以文件输入大整数,大整数可以输出至显示器,也可以输出至文件。
大整数的存储、运算和显示,可以同时支持二进制和十进制,但至少要支持十进制。
大整数输出显示时,必须能清楚地表达出整数的位数。
测试时,各种情况都需要测试,并附上测试截图;
要求测试例子要比较详尽,各种极限情况也要考虑到,测试的输出信息要详细易懂,表明各个功能的执行正确。
2.要求大整数的长度可以不受限制,即大整数的十进制位数不受限制,可以为十几位的整数,也可以为500多位的整数,甚至更长;
大整数的运算和显示时,只需要考虑正的大整数。
如果可能的话,请以秒为单位显示每次大整数运算的时间。
3.要求采用类的设计思路,不允许出现类以外的函数定义,但允许友元函数。
主函数中只能出现类的成员函数的调用,不允许出现对其它函数的调用。
4.要求采用多文件方式:.h文件存储类的声明,.cpp文件存储类的实现,主函数main存储在另外一个单独的cpp文件中。
如果采用类模板,则类的声明和实现都放在.h文件中。
5.不强制要求采用类模板,也不要求采用可视化窗口;
要求源程序中有相应注释。
6.要求采用VisualC++6.0及以上版本进行调试。
1
c语言编写的基于51单片机的计算器程序(4x4按键);
0~9十个数字键,加减乘除四个键,等号按键和清零按键。
实现长度最长为6位数的加、减、乘、除,可根据自己的硬件,进行改写,增加计算数字的长度。
2025/7/6 7:15:20 5KB 51单片机 c语言 计算器 4x4按键
1
实现算术加、减、乘、除等基本运算;
实现三角函数的运算、对数运算、指数运算、阶乘等科学运算;
能实现基础进制转换(二进制、八进制、十进制、十六进制);
实现计算表达式及结果的保存,便于用户检查计算结果;
2025/7/4 20:09:19 941KB qt 计算器 C++ 进制转换
1
非线性最小二乘教程
2025/6/29 5:57:02 540KB slam 数学 数学建模
1
NumericalMethodsforUnconstrainedOptimizationandNonlinearEauations.介绍了newtonmethod,broydenmethod等诸多方法求解无约束求解非线性最小二乘问题.
2025/6/29 1:32:55 16.95MB 非线性方程 无约束最优化
1
MATLAB中AR模型功率谱估计中AR阶次估计的实现-psd_my.rar(最近看了几个关于功率谱的问题,有关AR模型的谱估计,在此分享一下,希望大家不吝指正)(声明:本文内容摘自我的毕业论文——心率变异信号的预处理及功率谱估计)(按:AR模型功率谱估计是对非平稳随机信号功率谱估计的常用方法,但是其模型阶次的估计,除了HOSA工具箱里的arorder函数外,没有现成的函数可用,arorder函数是基于矩阵SVD分解的阶次估计方法,为了比较各种阶次估计方法的区别,下面的函数使用了'FPE','AIC','MDL','CAT'集中准则一并估计,并采用试验方法确定那一个阶次更好。
)………………………………以上省略……………………………………………………………………假设原始数据序列为x,那么n阶参数使用最小二乘估计在MATLAB中实现如下:Y=x;Y(1:n)=[];m=N-n;X=[];%构造系数矩阵fori=1:m  forj=1:n      X(i,j)=xt(ni-j);  endendbeta=inv(X'*X)*X'*Y';复制代码beta即为用最小二乘法估计出的模型参数。
此外,还有估计AR模型参数的Yule-Walker方程法、基于线性预测理论的Burg算法和修正的协方差算法等[26]。
相应的参数估计方法在MATLAB中都有现成的函数,比如aryule、arburg以及arcov等。
4.3.3AR模型阶次的选择及实验设计文献[26]中介绍了五种不同的AR模型定阶准则,分别为矩阵奇异值分解(SingularValueDecomposition,SVD)定阶法、最小预测定误差阶准则(FinalPredictionErrorCriterion,FPE)、AIC定阶准则(Akaika’sInformationtheoreticCriterion,AIC)、MDL定阶准则以及CAT定阶准则。
文献[28]中还介绍了一种BIC定阶准则。
SVD方法是对Yule-Walker方程中的自相关矩阵进行SVD分解来实现的,在MATLAB工具箱中arorder函数就是使用的该算法。
其他五种算法的基本思想都是建立目标函数,阶次估计的标准是使目标函数最小化。
以上定阶准则在MATLAB中也可以方便的实现,下面是本文实现FPE、AIC、MDL、CAT定阶准则的程序(部分):form=1:N-1  ……    %判断是否达到所选定阶准则的要求  ifstrcmp(criterion,'FPE')    objectfun(m1)=(N(m1))/(N-(m1))*E(m1);  elseifstrcmp(criterion,'AIC')    objectfun(m1)=N*log(E(m1))2*(m1);  elseifstrcmp(criterion,'MDL')    objectfun(m1)=N*log(E(m1))(m1)*log(N);  elseifstrcmp(criterion,'CAT')    forindex=1:m1        temp=temp(N-index)/(N*E(index));    end    objectfun(m1)=1/N*temp-(N-(m1))/(N*E(m1));  end    ifobjectfun(m1)>=objectfun(m)    orderpredict=m;    break;  endend复制代码orderpredict变量即为使用相应准则预测的AR模型阶次。
(注:以上代码为结合MATLAB工具箱函数pburg,arburg两个功率谱估计函数增加而得,修改后的pburg等函数会在附件中示意,名为pburgwithcriterion)登录/注册后可看大图程序1.JPG(35.14KB,下载次数:20352)下载附件 保存到相册2009-8-2820:54上传登录/注册后可看大图程序2.JPG(51.78KB,下载次数:15377)下载附件 保存到相册2009-8-2820:54上传下面本文使用3.2.1实验设计的输出结果即20例经预处理的HRV信号序列作为实验对象,分别使用FPE、AIC、MAL和CAT定阶准则预测AR模型阶次,图4.1(见下页)为其中一例典型信号使用不同预测准则其目标函数随阶次的变化情况。
从图中可以看出,使用FPE、AIC以及MDL定阶准则所预测的AR模型阶次大概位于10附近,即阶次10左右会使相应的目标函数最小化,符合定阶准则的要求,使用CAT定阶准则预测的阶次较小,在5~10之间。
图4.2(见下页)为另一例信号的阶次估计情况,从中也可以得到同样的结论。
(注,实验信号为实验室所得,没有上传)登录/注册后可看大图图片1.JPG(28.68KB,下载次数:5674)下载附件 保存到相册2009-8-2820:54上传
2025/6/27 16:08:25 6KB matlab
1
贝叶斯优化最小二乘向量机,很好的优化方法,也比较少见
2025/6/24 1:51:29 2KB lssvm
1

在Excel中,括号是公式和函数构造的重要组成部分,它们在计算逻辑中起着至关重要的作用。
本主题将深入探讨“第5个:公式中的括号”这一知识点,旨在帮助你掌握如何有效利用括号来增强Excel公式的复杂性和精确性。
括号在Excel中的主要作用是控制计算顺序。
在数学中,我们遵循“先乘除后加减”的原则,而在Excel公式中,括号可以帮助我们打破这一顺序,优先解决括号内的运算。
例如,如果你有一个公式`=2+3*4`,Excel会先进行乘法运算,得到的结果是14。
但如果你写成`=(2+3)*4`,括号使得加法先执行,然后再乘以4,结果就变成了20。
括号可以用于组合多个函数。
在Excel中,你可以用括号来嵌套函数,让一个函数的结果作为另一个函数的输入。
比如,假设你想找到A列数值的平均值(AVG)并对结果取整(ROUND),你可以写成`=ROUND(AVERAGE(A:A),0)`。
这里,`AVERAGE(A:A)`的结果被`ROUND`函数处理,确保结果为整数。
再者,括号还可以用于数组公式。
数组公式可以处理多行多列的数据,通常需要使用Ctrl + Shift + Enter键组合输入。
例如,如果你要找出两列数据中相同的值,可以使用公式`=IF(A1:A10=B1:B10,"相同","不同")`,然后用Ctrl + Shift + Enter输入,这会在每个单元格中检查对应位置的值是否相等。
此外,括号在逻辑函数中也发挥着关键作用。
例如,在IF函数中,它分为三部分:条件、结果如果为真和结果如果为假。
IF函数的基本结构是`=IF(条件, 结果1, 结果2)`。
这里的括号确保了条件的正确设定和结果的清晰区分。
更进一步,嵌套IF函数时,括号就显得尤为重要。
你可以用括号来组织复杂的逻辑判断,例如`=IF(A1>10, "大于10", IF(A1<5, "小于5", "在5到10之间"))`,这个公式首先检查A1是否大于10,如果是,则返回"大于10";
如果不是,再检查是否小于5,若是则返回"小于5",否则返回"在5到10之间"。
我们不能忽视错误处理的情况。
当公式可能产生错误时,可以使用IFERROR函数结合括号来捕获并处理这些错误。
例如,`=IFERROR(A1/B1, "除数为零")`,如果B1为零导致除法错误,它将返回"除数为零",否则返回正常的计算结果。
括号在Excel公式的运用中扮演了运算优先级设定、函数组合、数组处理、逻辑判断以及错误处理等多个角色。
熟练掌握括号的使用,能极大地提高你在Excel中的数据处理能力和工作效率。
通过实际操作和练习,你将能更好地理解和应用这些技巧,让你的Excel技能更上一层楼。
2025/6/18 11:41:10 3KB
1
在计算机视觉领域,图像配准是一项关键任务,它涉及到将多张图像对齐,以便进行比较、融合或分析。
OpenCV(开源计算机视觉库)提供了一系列工具和算法来执行这项工作,其中包括相位相关法。
本文将深入探讨如何利用OpenCV实现相位相关图像配准,并详细介绍相关知识点。
相位相关是一种非像素级对齐技术,它通过计算两个图像的频域相位差异来确定它们之间的位移。
这种方法基于傅里叶变换理论,傅里叶变换可以将图像从空间域转换到频率域,其中图像的高频成分对应于图像的边缘和细节,低频成分则对应于图像的整体结构。
我们需要理解OpenCV中的傅里叶变换过程。
在OpenCV中,可以使用`cv::dft`函数对图像进行离散傅里叶变换。
这个函数将输入的图像转换为频率域表示,结果是一个复数矩阵,包含了图像的所有频率成分。
然后,为了进行相位相关,我们需要计算两个图像的互相关。
这可以通过将一个图像的傅里叶变换与另一个图像的共轭傅里叶变换相乘,然后进行逆傅里叶变换得到。
在OpenCV中,可以使用`cv::mulSpectrums`函数来完成这个步骤,它实现了复数乘法,并且可以指定是否进行对位相加,这是计算互相关的必要条件。
接下来,我们获得的互相关图在中心位置有一个峰值,该峰值的位置对应于两幅图像的最佳位移。
通过找到这个峰值,我们可以确定图像的位移量。
通常,这可以通过寻找最大值或最小二乘解来实现。
OpenCV提供了`cv::minMaxLoc`函数,可以帮助找到这个峰值。
在实际应用中,可能会遇到噪声和图像不完全匹配的情况。
为了提高配准的准确性,可以采用滤波器(如高斯滤波器)预处理图像,降低噪声影响。
此外,还可以通过迭代或金字塔方法逐步细化位移估计,以实现亚像素级别的精度。
在实现过程中,需要注意以下几点:1.图像尺寸:为了进行傅里叶变换,通常需要将图像尺寸调整为2的幂,OpenCV的`cv::getOptimalDFTSize`函数可以帮助完成这一操作。
2.零填充:如果图像尺寸不是2的幂,OpenCV会在边缘添加零,以确保傅里叶变换的效率。
3.归一化:为了使相位相关结果更具可比性,通常需要对傅里叶变换结果进行归一化。
一旦得到配准参数,可以使用`cv::warpAffine`或`cv::remap`函数将一幅图像变换到另一幅图像的空间中,实现精确对齐。
总结来说,OpenCV提供的相位相关方法是图像配准的一种高效工具,尤其适用于寻找微小的位移。
通过理解和运用上述步骤,开发者可以在自己的项目中实现高质量的图像配准功能。
2025/6/17 6:37:22 204KB OpenCV 相位相关 图像配准
1
     针对当前模糊隶属函数构造方法中存在的问题,提出一种构造模糊隶属函数方法.采用最小二乘法拟合离散数据来获得隶属函数.为减小拟合误差,采用了3项措施以达到预期目标.所构建的隶属函数,对任意输入物理量可直接得到其对应模糊语言变量的隶属度,从而有效避免专家指定隶属度的主观臆断性及不一致性.该方法简单、求解精度高,具有广泛适用性和较强的应用价值.仿真结果证实了该方法的有效性.
1
共 358 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡