为了获得超高精度面形的光学元件并验证离子束的修正能力,对应用离子束修正大面形误差光学元件的问题进行了实验研究。
通过改变离子源光阑尺寸的方式获得了不同束径的离子束去除函数,并对一直径为101mm、初始面形峰谷(PV)值为417.554nm、均方根(RMS)值为104.743nm的熔石英平面镜进行了离子束修形实验。
利用10、5、2mm光阑离子源的组合,进行了12次迭代修形,最终获得了PV值为10.843nm、RMS值为0.872nm的超高精度表面。
实验结果表明,应用离子束可以对大面形误差光学元件进行修正,并且利用更大和更小束径离子束去除函数的组合进行优化,可以进一步提升加工效率和精度。
2024/12/24 7:34:38 3.49MB 光学制造 离子束 面形修正 去除函数
1
第1章重新研读C#语言31.1说明1.2C#部分语法内容扩展41.2.1命名空间(Namespace)41.2.2简洁的异步通知机制——委托(Delegate)61.2.3考验你的算法抽象能力——泛型(Generics)121.2.4用作标签的方式扩展对象特性——属性(Attribute)181.2.5用索引器简化的C#类型信息访问221.2.6融入C#语言的迭代机制——迭代器(Iterator)291.3可重载运算符(OverloadableOperators)与转换运算符(ConversionOperators)351.3.1TheDayAfterSomeday351.3.2用于有限的状态迭代351.3.3操作集合361.3.4类型的适配371.3.5小结381.4面向插件架构和现场部署的配置系统设计391.4.1认识.NETFramework提供的主要配置实体类401.4.2应用实例411.4.3小结481.5实现依赖注入481.5.1背景介绍481.5.2示例情景481.5.3Constructor注入511.5.4Setter注入511.5.5接口注入521.5.6基于Attribute实现注入——Attributer531.5.7小结55第2章开始每个设计模式之前572.1new()的替代品592.2准备一个轻量的内存Cache612.3准备一个集中访问配置文件的Broker642.4Web?NotWeb?672.5小结71
2024/12/21 6:48:18 37.92MB 设计模式
1
下面是我对于Scrum的学习、理解及总结,参考了Scrum指南和一些书籍,并加入了自己的一些理解,希望对自己有用。
Scrum是以经验过程控制理论为依据,采用迭代、增量的方法来提高产品开发的可预见性并控制风险。
Scrum的三大支柱支撑起每个经验过程控制的实现。
高透明度确保管理结果的人看得到那些影响结果的过程方面。
这些过程方面不仅要透明,而且那些被观察到的方面也必须被充分了解。
这就是说,当某人检验某个过程并认为完成了某些任务时,这个完成必须等同于他们的完成定义。
开发过程中的各方面必须做到经常性的检验,以确保及时发现过程中的重大偏差。
在确定检验频率时,需要考虑到检验会引起所有过程发生变化。
当规定的检
2024/12/19 3:10:02 204KB Scrum敏捷软件开发模型
1
寻找路径这是算法的基本实现,用于查找平面上两点之间的最短路径。
该代码使用了C++20的某些功能,并且显然是过度设计的。
我写它只是为了好玩。
text_files文件夹中有3个文件:example.txt是级别的示例。
*是一个允许的点(算法可以访问它),X是一个障碍。
A是起点,B是终点。
该文件只能包含这些字符。
同样,该级别也不必是矩形的(某些行可以比其他行长/短)。
config.txt一个非常基本的配置文件:edgeWidth每个单元的宽度(像素);
edgeHeight每个单元格的高度(像素);
maxFrameRate每次迭代将至少花费此值(以毫秒为单位);
graphPath相对于可执行文件的级别的文件路径。
config_i.txt交互模式的一个非常基本的配置文件:edgeWidth每个单元的宽度(像素);
edgeHeight每
2024/12/16 0:44:03 1.04MB C++
1
本文针对多输入多输出正交频分复用(MIMOOFDM)系统,提出了一种迭代决策导向信道估计算法。
该算法分为两部分:信道预测和信道估计。
信道预测的基本思想是使用自回归模型和信道的先验信息来预测信道状态。
然后,通过使用信道预测信息和接收信号来估计信道状态。
仿真结果表明,该方法可以提高信道估计的准确性,提高MIMO-OFDM系统的性能。
与传统的DDCE方法相比,当SNR为30时,迭代DD-CE方法的BER提升了近10%,估计精度提高了近2dB。
2024/12/15 5:22:46 256KB channel estimation MIMO-OFDM decision
1
电话交换机的进程与更新迭代的进化论,是经过长久的说明和实际的正面打到的心的一种需要度,是我们人类发展史上的奇异啊,大家应该齐心协力
2024/12/8 14:19:24 168KB 技术
1
对即将找工作的大学生,研究生都爱刷leetcode的题目,但是刚刚接受无法适从,或是一时半会儿想不到解法,没关系,leetcode题解PDF可一带你慢慢了解思路过程。
目录3.4Addbinary615.1.5BinaryTreeLevelOr-3.5LongestPalindromicSubstring.62dertraversalil3.6RegularExpressionMatching665.1.6BinaryTreeZigzag3.7WildcardMatching67LevelOrdertraversal.963.8LongestCommonPrefix5.1.7RecoverBinarySearch3.9ValidNumber70Tree983.10Integertoroman725.1.8SameTree3.11RomantoInteger5.1.9SymmetricTree1013.12CountandSay745.1.10BalancedBinaryTree..1023.13Anagrams755.1.11FlattenBinaryTreeto3.14SimplifyPath76LinkedList1033.15LengthofLastWord775.1.12PopulatingNextRightPointersineachnodeii105第4章栈和队列7952二叉树的构建1074.1栈795.2.1ConstructBinaryTree4ValidParentheses79fromPreorderandIn4.1.2LongestvalidParenorderTraversatheses805.2.2ConstructBinaryTree4.1.3LargestRectangleinfromInorderandposHistogram82torderTraversal1084.14Evaluatereversepol-53二叉查找树109ishnotation845.3.1UniqueBinarySearch4,2队列85Trees5.3.2UniqueBinarySearch第5章树86Treesli.1105.1二叉树的遍历865.3.3ValidateBinarySearch5.1.1BinaryTreePreorderTreeTraversal865.3.4ConvertSortedarrayto5.1.2BinaryTreeInorderBinarySearchTreel12Traversal885.3.5ConvertSortedListto5.1.3BinaryTreePostorderBinarysearchtree113Traversal9054二叉树的递归1155.1.4BinaryTreeLevelOr5.4.1MinimumDepthofBidertraversalnarylree115目录5.4.2MaximumDepthofBi8.32重新实现nextpermunaryTree116tation1425.4.3PathSum117833递归.1435.44PathSumil1188.4PermutationsII1445.4.5BinaryTreeMaximum8.4.1nextpermutation...144PathSuum119842重新实现nextpermu5.4.6PopulatingNextRighttation144Pointersineachnode12084.3递归1445.4.7SumRoottoLeafNum8.5Combinations146bers122851递归146852迭代147第6章排序1238.6LetterCombinationsofaphone6.1MergeSortedArray123umber1476.2MergeTwoSortedLists12486.1递归1486.3MergekSortedLists124862迭代96.4InsertionSortList125第9章广度优先搜索1506.5Sortlist1269.1WordLadder1506.6FirstMissingPositive1279.2WordLadderil..1526.7SortColors289.3Surroundedregions154第7章查找94小结15613194.1适用场景1567.1Searchforarange131942思考的步骤.1567.2SearchInsertPosition.13294.3代码模板1577.3Searcha2DMatrix133第10章深度优先搜索162第8章暴力枚举法13510.1PalindromePartitioning..1628.1Subsets13510.2UniquePaths1658.1.1递归1350.2.1深搜1658.1.2迭代.13710.22备忘录法.1658.2Subsetsil13810.23动规166821递归1381024数学公式167822迭代.14110.3UniquePathsIl1688.3Permutations14210.3.1备忘录法1688.3.1nextpermutation14210.3.2动规.169目录10.4N-Queens16913.4Maximalrectangle19910.5N-QueensII17213.5BestTimetoBuyandSellStock10.6Restoreipaddresses17320010.7CombinationSum17413.6InterleavingString20110.8CombinationSumIl17513.7ScrambleString20310.9GenerateParentheses.17713.8MinimumPathSum20810.10Sudokusolver17813.9EditDistance21010.11WordSearch.18013.10DecodeWays.21210.12小结18113.11DistinctSubsequences21310.12.1适用场景1813.12WordBreak21410.122思考的步骤1811313WordBreakil21610.12.3代码模板183第14章图21810.12.4深拽与回溯法的区别.18414.1CloneGraph10.12.5深搜与递归的区别..184第15章细节实现题221第11章分治法18515.1ReverseInteger2211.1Pow(x,n)18515.2PalindromeNumber222qrt(x18615.3InsertInterval223第12章贪心法18715.4MergeIntervals22412.1Jumpgame18715.5MinimumWindowSubstring..22512.2JumpgameIl18815.6MultiplyStrings22712.3BestTimetobuyandsellstock19015.7SubstringwithConcatenation12.4BestTimetobuyandsellstock191ofallwords23012.5LongestSubstringWithoutre15.8Pascal,sTrianglepeatingCharacters19215.9PascalsTriangleIl23212.6ContainerwithmostWater.19315.10Spiralmatrix23315.11SpiralmatrixII234第13章动态规划19515.12ZigZagConversion23613.1Triangle19515.13DivideTwoIntegers23713.2MaximumSubarray19615.14TextJustification23813.3PalindromePartitioningII19815.15MaxPointsonaline目录第1章编程技巧在判断两个浮点数a和b是否相等时,不要用a=-b,应该判断二者之差的绝对值fabs(a-b)是否小于某个阈值,例如1e-9。
判断一个整数是否是为奇数,用x%2!=0,不要用x%2==1,因为x可能是负数用char的值作为数组下标(例如,统计字符串中每个字符出现的次数),要考虑到char可能是负数。
有的人考虑到了,先强制转型为unsignedint再用作下标,这仍然是错的。
正确的做法是,先强制转型为unsignedchar,再用作下标。
这涉及C++整型提升的规则,就不详述了。
以下是关于STL使用技巧的,很多条款来自《EffectiⅤveStL》这本书。
vector和string优先于动态分配的数组首先,在性能上,由于vector能够保证连续内存,因此一旦分配了后,它的性能跟原始数组相当其次,如果用new,意味着你要确保后面进行了delete,一旦忘记了,就会岀现BUG,且这样需要都写一行delete,代码不够短再次,声明多维数组的话,只能一个一个new,例如:int**ary=newint*[row_num];for(inti=0:i<rownum;++1)ary[i]newint[col_num]用vector的话一行代码搞定,vector<vector<int>>ary(row_num,vector<int>(col_num,0))使用reserve来避免不必要的重新分配第2章线性表这类题目考察线性表的操作,例如,数组,单链表,双向链表等。
21数组2.1.1RemoveDuplicatesfromSortedarray描述Givenasortedarray,removetheduplicatesinplacesuchthateachelementappearonlyonceandreturnthenewlengthDonotallocateextraspaceforanotherarray,youmustdothisinplacewithconstantmemoryForexample,GiveninputarrayA=[1,1,2Yourfunctionshouldreturnlength=2,andaisnow[1,2]分析无代码1/LeetCode,RemoveDuplicatesfromSortedArray/时间复杂度0(n),空间复杂度0(1)classSolutiontublicintremoveDuplicates(intA[],intn)tlf(n==oreturnointindex=0:for(inti=1:i<n:i++iif(Alindex!alidA[++index]=Alireturnindex12.1数组代码2//LeetCode,RemoveDuplicatesfromSortedArray//使用STL,时间复杂度0(n),空间复杂度0(1)classSolutionipublicintremoveDuplicates(intA[,intn)treturndistance(A,unique(A,An))代码3/LeetCode,RemoveDuplicatesfromSortedArray/使用STL,时间复杂度0(n),空间复杂度0(1)lassSolutionfublicintremoveDuplicates(intA[],intn)treturnremoveDuplicates(A,A+n,A)-A;template<typenameInIt,typenameoutit>OutItremoveDuplicates(InItfirst,InItlast,OutItoutput)thile(firstlast)i*output++=*firstfirstupper_bound(first,last,*firstreturnoutput相关题目RemoveduplicatesfromSortedArrayIl,见§2.1.22.1.2RemoveDuplicatesfromSortedArrayII描述Followupfor"RemoveDuplicates"Whatifduplicatesareallowedatmosttwice?Forexample,Givensortedarraya=[1,1,1,2,2,3]Yourfunctionshouldreturnlength=5,andAisnow[1,1,2,2,3分析加一个变量记录一下元素出现的次数即可。
这题因为是已经排序的数组,所以一个变量即可解决。
如果是没有排序的数组,则需要引入一个hashmap来记录出现次数4第2章线性表代码1//LeetCode,RemoveDuplicatesfromSortedArrayII/时间复杂度0(n),空间复杂度0(1)//qauthorhex108(https://github.com/hex108)classSolutiontublicintremoveDuplicates(intA[],intn)tlf(n<=2returnnintindex=2for(inti=2:in:1++)if(all]!Alindex-2])ALindex++]=Ali]returnindex;代码2下面是一个更简洁的版本。
上面的代码略长,不过扩展性好一些,例如将occur<2改为ocur<3,就变成了允许重复最多3次。
//LeetCode,RemoveDuplicatesfromSortedArrayII//@author虞航仲(http://weibo.com/u/1666779725)//时间复杂度0(n),空间复杂度0(1)classSolutionipublicintremoveDuplicates(intA[],intn)tmtindex=ofor(intif(i>0&&i<1&&A[i]==A[i-1]&&A[i]==A[i+1])continueAlindex++]=Alireturnindex;相关题目RemoveDuplicatesfromSortedArray,见§2.1.12.1.3SearchinRotatedSortedArray描述Supposeasortedarrayisrotatedatsomepivotunknowntoyoubeforehand
2024/12/7 0:08:16 1.03MB leetcode题解
1
对于2FSK,调制就是把输入数字序列变成适合于信道传输的正弦波。
产生正弦波有差分迭代法、泰勒级数法、查表法等多种方法。
查表法虽然要占用较多的存储空间,但速度快,实时性好,特别适用于通信载波的生成。
但是查表法对于后期解调来说稍微困难,因此我们用计算法(差分迭代)产生不同频率正弦波。
本书旨在DSP设计2FSK调制解调器,C语言,包含CCS下的编译调试
2024/12/1 0:03:40 966KB 2FSK
1
基于线性Bregman迭代的矩阵补全MATLAB代码实现,其中包含固定步长和变步长的线性Bregman。
2024/11/21 11:47:36 26KB 矩阵补全 MC MATLAB 线性Bregman
1
MeanShift算法,一般是指一个迭代的步骤,即先算出当前点的偏移均值,移动该点到其偏移均值,然后以此为新的起始点,继续移动,直到满足一定的条件结束.Comaniciu等人[3][4]把MeanShift成功的运用的特征空间的分析,在图像平滑和图像分割中MeanShift都得到了很好的应用.Comaniciu等在文章中证明了,MeanShift算法在满足一定条件下,一定可以收敛到最近的一个概率密度函数的稳态点,因此MeanShift算法可以用来检测概率密度函数中存在的模态.
2024/11/21 9:44:11 3KB Mean_Shift (分割)
1
共 466 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡