自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 资源 (5)
  • 收藏
  • 关注

原创 分治算法设计:切割篱笆问题

切割篱笆问题假设有道篱笆用N个同宽的木条拼接而成。因年久失修,有些木板已经折断,因而整个篱笆呈现出参差不齐的轮廓,所以要用新的木板替换。不过为了环保,可以用一部分旧篱笆切割出长方形的木板充当木料。图(b)表示在(a)形状的篱笆中能切割出的最大长方形。给定构成篱笆的各个木板的高度,编写程序计算能够切割出的最大长方形面积。不能斜线切割,即不允许采用如图(c)的切割方法。 图1 切割篱笆问题暴力算法给出保存各个木板高度的数组h[],截取第l个木板到第r个木板的长方形面积可...

2021-07-11 15:40:13 1029 3

原创 《聪明的投资者》读书笔记

本书一直被奉为"股票投资圣经",作者-本杰明·格林厄姆是价值投资理论的开山鼻祖、股神巴菲特的投资教父。作为他所生活的那个时代的最佳投资人之一,格雷厄姆把这个被迷信、臆测所左右的投机活动转变成了一种现代职业。巴菲特是幸运的,他的投资生涯肇始于美股历史上最长牛市的开始。在牛市中操作,普通人只要秉承长期投资的理念必然都能从股市获取不错的收益,更何况是股神呢?反观格雷厄姆,就没那么好运了,他闯过1929~1932的大萧条,此后一直在牛市的废墟上交易,直到1956年退休。但从1936~1956年间,他管理的资

2021-07-11 11:42:59 2490

原创 位操作的应用实例(2)位掩码

位掩码(bit mask),说白了是应用位运算来实现一些复杂的操作,利用二进制的1和0来实现。例题1:给定了 32 位整数 N 和 M,如何将 N 的 i 到 j 位(位位置是 1,2,3,…32)设 置 为 和 M 中 相 同 位 的 值 。例 如 , N = 00000000000000000000000001111011,M = 00000000001000000011000000011000, i = 10, j = 20;那么,结果应该是 000000000010000000110000

2020-07-19 16:53:21 4764

原创 判断点在多边形内的算法(Winding Number详解)

Winding Number

2020-06-30 20:13:08 10147 1

原创 多边形快速凸包算法(Melkman‘s Algorithm)

前言平面点集的凸包算法一文介绍了如何计算平面点集或者任意多边形的凸包。对于随机的平面点集,Graham scan和Andraw's 单调链算法已经是最快的算法了。但是对于没有自相交的封闭的简单多边形,存在线性复杂度的算法。下面介绍这一优雅高效的算法。一般的2D凸包算法,首先将点进行排序(时间复杂度),然后利用栈操作在O(n)的时间复杂度内计算凸包。初始的排序决定了最终的时间复杂度。但是本文...

2020-02-11 10:39:29 7794 11

原创 动态规划详解(1)

目录简介(入门篇)什么是动态规划,我们要如何描述它?“状态”代表什么及如何找到它?初级篇购买或销售股票的最佳时机最长非降子序列电梯调度问题简介(入门篇)什么是动态规划,我们要如何描述它?动态规划算法通常基于一个递推公式及一个或多个初始状态。当前子问题的解将由上一次子问题的解推出。使用动态规划来解题只需要多项式时间复杂度,因此它比回溯法、暴力法等要快许多。...

2020-02-10 16:02:05 708

原创 《启示录》读书笔记(3)

第二部分 流程第21章 产品验证产品验证是指在正式开发、部署产品前,验证产品说明文档描述的产品是否符合预期要求。产品经理向产品团队提供最终的产品说明文档前,需要进行以下3项重要的验证。可行性测试首先要明确在现有技术条件下,能否成功开发出产品。邀请架构师和开发人员深度参与技术调研,寻找可行方案。可用性测试交互设计师应该与产品经理密切合作,想方设法突出产品的功能特性,让不同类型的用户都能明白如何使用 一定要请真实的用户来试用可用性原型,从目标用户那里可以得到宝贵的反馈信息价值测试

2021-11-14 11:33:42 419

原创 《启示录》读书笔记(2)

第二部分 流程第11章 评估产品机会(确定待解决的问题)评估产品机会是产品经理的重要职责。评估产品机会的目的在于:淘汰馊主意,避免浪费时间和金钱;挑选合适的产品机会,团结团队,理解产品,整合资源。为了评估产品机会,产品经理需要回答:产品也要解决什么问题?(产品价值) 为谁解决问题?(目标市场) 成功的机会有多大?(市场规模) 怎样判断产品成功与否?(收益指标) 又哪些同类产品?(竞争格局) 为什么我们最适合做这个产品?(竞争优势) 时机合适吗?(市场时机) 如何把产品推向.

2021-05-29 15:45:24 846

原创 《启示录》读书笔记(1)

前言好的产品靠设计作者认为成功的产品都遵循一定的规律,而非来自偶然。以下是作者总结的十条规律:产品经理的任务是探索产品的价值、可用性、可行性。 探索(定义)产品需要产品经理、交互设计师、软件架构师通力合作。 开发人员不擅长用户体验设计,因为开发人员脑子里想的是实现模型,而用户看重的是产品的概念模型。 用户体验设计就是交互设计、设觉设计 功能和用户体验设计密不可分 产品创意必须尽早地、反复地接受目标用户的试用,以便获取有效的用户体验 为了验证产品的价值和可用性,必须尽早地、反复地请目标

2021-05-19 17:15:14 309 1

原创 三种线性排序算法:计数排序、桶排序与基数排序

非基于比较的排序在计算机科学中,排序是一门基础的算法技术,许多算法都要以此作为基础,不同的排序算法有着不同的时间开销和空间开销。排序算法有非常多种,如我们最常用的快速排序和堆排序等算法,这些算法需要对序列中的数据进行比较,因为被称为基于比较的排序。基于比较的排序算法是不能突破O(NlogN)的。简单证明如下:N个数有N!个可能的排列情况,也就是说基于比较的排序算法的判定树有N!个叶子结点,比较次数至少为log(N!)=O(NlogN)(斯特林公式)。而非基于比较的排序,如计数排序,桶排序,和在此基础

2021-05-05 16:41:07 456

原创 AQTime新手入门

一、AQTime功能简介AQTime含有完整的性能和调试工具集,能够收集程序运行时关键的性能信息和内存/资源分配信息,并提交概要报告和详细报告,还提供所有的程序优化处理工具,囊括了自定义过滤器、图形化的调用层次结构一直到源代码浏览等内容。重点:能收集分析程序中某个例程所消耗的资源。二、下载安装关于AQTime的下载安装:http://confluence.fscut.com/display/CAD/2019/05/21/AQTime三、AQTime常见问题解决方法卡顿、无响应。在安装目录\

2021-05-05 16:18:11 996 1

原创 MATLAB并行计算

先上图,图中求500次随机矩阵的特征值,串行14.85s,并行3.63s 。%% 串行计算ticS1=1;for i = 1:500 S1 = S1+max(eig(rand(i)));enddisplay(strcat('客户端串行计算时间:',num2str(toc),'秒'));并行化:%% 开启线程池if isempty(gcp('nocreate')) %如果之前没有开启parpool则启动 parpool(maxNumCompThreads);

2020-10-12 13:38:01 3136

原创 递归算法转换为非递归算法的技巧

递归函数具有很好的可读性和可维护性,但是大部分情况下程序效率不如非递归函数,所以在程序设计中一般喜欢先用递归解决问题,在保证方法正确的前提下再转换为非递归函数以提高效率。函数调用时,需要在栈中分配新的帧,将返回地址,调用参数和局部变量入栈。所以递归调用越深,占用的栈空间越多。如果层数过深,肯定会导致栈溢出,这也是消除递归的必要性之一。递归函数又可以分为尾递归和非尾递归函数,前者往往具有很好的优化效率,下面我们分别加以讨论。...

2020-09-28 22:33:30 3759

原创 如何本地化Delphi对话框内部的字符串?

我们使用Delphi开发的程序,会用到一些Delphi内部的资源,例如对话框、控件等,这些控件上的文字一般都是英文的。另外一些运行时错误也是以英文的方式报告出来的。这些字符串能否翻译成中文显示呢?当然是可以的,方法也很简单。首先找到包含这些字符串的单元,例如Consts, RTLConsts等。然后在主程序中做本地化处理的地方按照我们的规范声明一份对应的中文,例如在AppStrs.pas中加入以下内容:SDlgWarning: string = ‘警告‘;SDlgError: str

2020-09-28 22:16:17 108

原创 凹包求解之滚球法

滚球法的思想最初源自于从二维点集重建平面形状的问题,后来笔者将这个思想用于做平面曲线的简化。例如,下面的平面点集,如何构建其分布区域表示的大致轮廓形状呢?算法思路的来源-Graham扫描 笔者最初想到的一个从求凸包的GrahamScan算法衍生出来的一个方法。求凸包的GrahamScan算法先找到一个Y最低的点作为起始点,然后使用叉积角度判断的方法去判断点的走向,最后在栈内留下了凸包的点序列。具体的算法讲解与代码,网上一搜各种有,这里就不详细表述。本文要介绍的方法也是和Gra...

2020-08-18 19:22:54 7570 16

原创 CAD—dxf & dwg格式解析库

最近研究了一下CAD数据自动化建模的相关内容,涉及到dwg格式的数据读写以及转换工具,通过查找比对,主要研究了两个开源库,分别是libdxfrw和libredwg。dwg格式的数据是CAD内部工作格式,以二进制方式存储,格式不开源。格式设计规范参照dwg格式设计规范:(https://blog.csdn.net/Caoyang_He/article/details/80343945)1、libdxfrw:是一个开源的c++库,可以读写ascii和二进制格式的DXF文件。支持R14 到V2015版本...

2020-08-12 17:48:31 5415

原创 位操作的应用实例(1)入门篇

位操作的定义所谓的位操作,是指按二进制逐位进行逻辑运算。常见的位运算包括:取反、位与、位或、位异或以及左移、右移。在 C/C++中,基本的位运算符总结如下,其中运算符优先级为从上到下递减,且<<和>>优先级相同,如下表所示:位运算符概览 操作符 功能 用法 ~ 取反 ~var << 左移运算(相当于乘法) var<<pos >> 右移运算(相当于除法) var>>

2020-07-06 11:07:24 376

原创 寻找强连通分量的Tarjan算法

有向图的强连通分量在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量(strongly connected components)。下图中,子图{1,2,3,4}为一个强连通分量,因为顶点1,2,3,4两两可达。{5},{6}也分别是两个强连通分量。直接根据定义,用双向遍历取交集的方法求强连通分量,时间复杂度为O(N^2+M)。更好的方法

2020-07-01 20:28:20 1060

转载 Delphi I/O Errors(Delphi读写错误)

The following are the Windows API (and former DOS) IO errors, which are also the IO errors often returned by Delphi programs, and which are generally difficult to find reference for, and are especially difficult to find referenced as Delphi errors.Some o

2020-06-28 14:23:16 3158

原创 优雅高效的多边形对称性判定算法

旋转对称轴对称

2020-05-16 19:33:20 2577 1

原创 delphi 取得当前进程的内存使用情况及线程数

单元uses Windows, PsAPI;1.获取当前进程句柄:GetCurrentProcess2.获取当前进程内存占用情况:GetProcessMemoryInfo示例如下:// 取得当前进程占用内存function CurrentMemoryUsage: Cardinal;var pmc: TProcessMemoryCounters;begin pmc.cb := SizeOf(pmc); if GetProcessMemoryInfo(GetCurrentP.

2020-05-10 17:18:41 2323

原创 你一定要知道的计算机底层知识

前言虽然在程序员的职业生涯中,计算机底层知识可能很少直接涉及,但并不意味着这部分知识不重要。

2020-05-06 21:17:37 2193

原创 《高效15法则》读书笔记

我们很多职场人士都有这样的状况:每天都很忙,没法按时完成工作,各种会议、电话和微信如雪片般纷至沓来,令人应接不暇;于是——吃饭没有规律,白天靠喝咖啡提神,工作和生活就像拌面一样搅在了一起。美国前总统布什工作之余每年阅读近100本书;facebook首席运营官谢丽尔·桑德伯格每天准时回家吃晚饭;英特尔前掌门人安迪·格罗夫每天早上8点工作,6点准时下班……为什么顶级精英们看上去都那么从容不...

2020-04-18 19:52:28 1001

原创 32Bit程序使用超过2G内存的方法

大家知道32Bit程序一般只能使用2G内存,但是我们往往需要使用更大内存,而有不想将程序改成64Bit。这时候有什么办法突破系统限制呢?说不多说,直接上代码:Delphi环境下,只需要在主程序之前加这么一句编译指令:{$SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE}亲测单进程可以使用高达3.8G内存。别忘了,添加Windwos.pas,否...

2020-04-11 17:48:23 1485

原创 计算机图形学学习笔记(6.2): 多边形裁剪

多边形裁剪在实际问题中,我们往往需要处理的是用矩形裁剪一个多边形,找到多边形落在屏幕区域内的部分。如下图:一般有两种算法来处理多边形裁剪问题:Sutherland-Hodgeman算法和Weiler-Atherton算法。下面介绍比较高效的Weiler-Atherton算法的主要步骤。Weiler-Atherton算法假定按顺时针方向处理顶点,且将多边形定义为Ps,窗口矩形...

2020-04-10 20:09:31 2003 1

原创 计算机图形学学习笔记(6.1):直线段裁剪

屏幕映射的概念如下图所示,要将实体显示在2D的屏幕上,需要先将实体在规范化的观察空间中进行投影变换,然后进行裁剪。这个过程就叫屏幕映射。裁剪要处理的问题,就是将在观察窗口内部的图形裁剪出来,进行显示。在观察窗口之外的图形,将不被显示。如下图:首先需要解决的是直线段裁剪问题。下面介绍两个非常著名的算法。直线段裁剪Cohen-Sutherland方法要解决的...

2020-04-04 18:35:51 2935

原创 计算机图形学学习笔记(5.3):非规则形体

非规则形体通常采用分形几何和粒子系统来表示。分形几何分形,具有以非整数维形式充填空间的形态特征。通常被定义为“一个粗糙戒零碎的几何形状,可以分成数个 部分,且每一部分都(至少近似地)是整体缩小后的形状”,即具有自相似的性质。分形(Fractal)一词,是芒德勃罗创造出来的,其原意具有不规则、支离破碎等意义。芒德布罗是想用此词来描述自然界中传统欧几里德几何学所不能描述的一大类复杂无规...

2020-03-29 17:27:27 1697

原创 计算机图形学学习笔记(5.2):规则形体的表示

实体模型的三类表示:边界表示(Boundary Representation, B-reps),即用一组曲面(含平面)来描 述物体,这些曲面将物体分为内部和外部。边界表示具体又包括多边形表面模型和扫 描表示两种。 构造实体几何表示(Constructive Solid Geometry,CSG),它将实体表示成立 方体、长方体、圆柱体、圆锥体等基本体素的组合,可以采用并、交、差等运算构造...

2020-03-17 16:16:27 2320

原创 计算机图形学学习笔记(5.1)几何造型与样条

几何造型技术两类对象:规则对象是指能用欧氏几何进行描述的形体,如点、直线、曲线、平面、曲面或实 体等。 不规则对象是指丌能用欧氏几何加以描述的对象,如山、水、树、草、云、烟等自然界丰富多彩的对象。规则对象的造型又称为几何造型。在几何造型中,所描述的形体都是规则物 体,统称为几何模型。在不规则对象的造型系统中,大多采用过程式模拟,即用一 个简单的模型以及少量的易于调节的参数来表示一类...

2020-03-15 07:02:49 2339

原创 计算机图形学学习笔记(4.4):图元与反走样

图元属性基本图元属性:点: 颜色、大小(像素方块)直线:颜色、线宽、线型附加技能:画笔、笔刷等特殊效果线宽 - 斜率绝对值<1 交替的在单宽度路径上下绘制像素显示的线宽根据,实际线宽和斜率计算线帽 - 减少端点的影响折线转折- 斜角连接 - 延伸外边界 -角度过小时会转换为斜切- 圆连接 - 用直径等于线宽的圆进行表示- 斜切连接 - 方帽并填充三角形间隙...

2020-03-14 09:39:08 601

原创 C++校招笔试题,BAT内部流出(2)

1.已知两个链表head1和head2各自有序,请把它们合并成一个链表依然有序。(保留所有结点,即便大小相同) 给定链表的结点结构如下:structNode{intdata ;Node*next ;};答案:Node * Merge(Node *head1 , Node *head2){ if ( head1 == NULL) retu...

2020-03-14 09:22:04 164

原创 C++校招笔试题,BAT内部流出(1)

1. #include < filename.h >和#include “filename.h” 有什么区别?  答:对于#include < filename.h >,编译器从标准库路径开始搜索filename.h 对于#include “filename.h”,编译器从用户的工作路径开始搜索filename.h2. 在C++ 程序中调用被C 编译器编译后的函数,...

2020-03-13 08:44:12 219

原创 C++矩阵运算库推荐

矩阵运算再很多数学算法中经常用到,不懂矩阵,就不算真正理解现代数学。大量现代高级算法都需要用到矩阵运算,根据之前的工作,顺便做了个调查,做一些相关的推荐吧。Armadillo:C++下的Matlab替代品地址:http://arma.sourceforge.net/许可证:MPL 2.0目前使用比较广的C++矩阵运算库之一,是在C++下使用Matlab方式操作矩阵很好的选择,许多M...

2020-03-12 13:50:22 4150

原创 手把手教你如何使用Poco TCPServer框架

1 TCPServer 框架概述POCO 库提供TCPServer框架,用以搭建自定义的 TCP 服务器。TCPServer维护一个连接队列、一个连接线程池。连接线程用于处理连接,连接线程只要一空闲就不断地从连接队列中取连接并进行处理。一旦连接线程从连接队列中取到一个连接,就会创建一个TCPServerConnection连接对象,并且调用该对象的start()方法,直到start()方法返回...

2020-03-11 08:45:07 2619 2

原创 计算机图形学学习笔记(4.3):多边形扫描转换与区域填充

多边形扫描转换区域填充

2020-03-10 20:20:28 3262

原创 一文看懂3种背包问题

前言前面在动态规划详解一文种讲解了几个动态规划的基本问题。最近在工作中碰到了背包问题,写了一下基于动态规划的算法,决定写一篇文章总结一下。3种背包问题的比较背包问题:有N种物品和一个容量为b的背包,第i种物品的重量为,价值为,如何选择放入的物品使得总价值最大。根据每件物品的数量限制,就分为3种背包问题,定义如下:01背包:每种物品只有一件,要么选择放入,要么选择不放入 完全背...

2020-03-10 10:11:42 4026 1

原创 VS下 L 和 _T() 指令

1.L指令字符串前面加 L 表示该字符串是Unicode 字符串,可以将ANSI字符串转换成 Unicode 字符串,就是每个字符占两个字节。strlen("abc") = 3;strlen(L"abc") = 6;2.T()或TEXT()宏_T()或者TEXT()宏,可以把你用引号括起来的字符串,根据你的环境选择合适的编码方式:如果定义的时Unicode ,那么 _...

2020-03-09 09:03:43 1064

原创 两个多边形之间的切线算法,最通俗易懂的讲解

前言

2020-03-08 16:32:26 1528 1

原创 计算机图形学学习笔记(4.2)画圆与椭圆

一般采用八分法画圆,由于圆的对称性,只需计算出八分之一圆弧的像素点即可。如下图:最直接的想法是:利用简单函数方程,直接离散计算:或者利用极坐标方程,直接离散计算,如下图:联想到直线中点Bresenham画法(参考:Bresenham中点画线算法),同样地,我们可以通过圆的隐式方程来构造中点Bresenham画圆法。中点Bresenham画圆法同样地,我们只...

2020-03-07 14:45:33 2203

原创 计算机图形学学习笔记(4.1)画线算法

前言现在的显示器都是像素点阵。但是图形在计算机中都用连续的线段或多边形等存储。因此在显示出来之前,要进行光栅化处理。图形的光栅化(图形的扫描转换)分成两步:1)根据图形的定义 在点阵单元上确定最佳逼近 于图形的像素集;2)给像素指定合适 的颜色值。如下图,对于一个三角形进行光栅化:4.1 画线算法直线是最基本的图形,一个动画或真实感图形往往需要调用成千上万次画线程序...

2020-02-28 17:45:49 2527

计算流体力学作业-平板上的超声速流动的数值求解

计算流体力学作业-平板上的超声速流动的数值求解,附上完整的Matlab数值求解代码,上海交大的满分课程作业。

2020-03-10

OpenFOAM Courses.7z

OpenFOAM二次开发指南,包含了很多OpenFOAM二次开发的相关课程PPT和教程。涵盖OpenFOAM C++基础到求解器改造。

2020-03-10

国际大学生程序设计竞赛例题解 [合集八本1-8].txt

国际大学生程序设计竞赛(ACM)例题解析合集八本1-8,设计到各类算法的方方面面,包括动态规划、图论、搜索算法等。对于做算法开发的程序员很有参考意义。 附件为百度网盘永久链接地址。

2020-03-10

设计模式学习分享.ppt

23种设计模式学习分享PPT,详细讲解每一种设计模式。PPT由本人亲自制作,可用于做培训,演讲时间大约1个小时,绝对精品。

2020-02-29

在一幅图中寻找圆的matlab算法

在一幅图中寻找圆的matlab算法,而且做成了GUI方便使用

2014-01-13

空空如也

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

TA关注的人

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