草庐IT

Algorithm

全部标签

c++ - 有什么好的方法可以指示计算机是否可以运行特定的程序/软件?

如果计算机能够使用纯JavaScript(GoogleV8)、C++(Windows、MacOS和Linux)运行程序/软件而没有任何性能问题,是否有任何好的方法可以通过要求尽可能少尽可能从软件创建者那里获得信息(例如CPU分数、GPU分数)?这样我可以很好地指示我的用户他们的计算机是否足以运行该软件,因此用户不需要从一开始就下载并安装它,如果她/他不能无论如何都要运行它。我想到类似“分数”的指示:CPU:230000(genericprocessorscore)GPU:40000(genericGPUscore)+Network/FileI/Oread/writerequiremen

c++ - 高效的函数调用匹配的数据结构

我正在构建一个工具,除其他外,该工具必须衡量我们产品变更与性能相关的影响。为了完成该任务,我实现了一个探查器,该探查器会在调用函数或返回函数时进行跟踪,并就此通知我。首先,我将输出转储到文件中以了解将要使用的数据,以下大致是它们的样子:FuncCall1FuncCall2FuncCall3FuncRet3FuncCall4FuncRet4FuncCall5FuncCall6FuncRet6FuncRet5FuncRet2FuncRet1为了更好地直观了解此数据的外观,以下是前10000个函数调用的图形:(x轴:时间,y轴:深度/嵌套):(http://img444.imageshack

c++ - 了解格子

我一直在研究一个计算机科学问题,在第一次面试非常成功后,我在第二次面试代码测试中遇到了这个问题。否则,我会认为这是一个灌篮。基本上,我要在2小时内使用晶格单元实现扫雷器。如果是1X1,则有一个单元格。那么如果它是2X2,一个单元格有四个单元格(子单元格?),每个单元格都双向链接到父单元格。此外,这两个child相互之间存在双重联系。另外两个child也是。从一个子单元格遍历到另一个子单元格意味着要么只跳到下一个子链接(一个兄弟),要么首先遍历回到父单元格,然后到另一个子链接对集中的目标子单元格.(注:tree-idea只是我的想法,不是必须的)我的总体想法是建立一个模式创建机制,然后根

c++ - boost::algorithm - 拆分字符串返回一个额外的标记

也许有人可以告诉我这里发生了什么?我的意图是在大括号上拆分输入字符串:即:'('或')'。对于"(well)hello(there)world"的输入字符串,我希望返回4个标记:well;你好;那里;世界。正如您从下面我的示例应用程序中看到的那样,我得到了5个token(第一个是空字符串)。有什么方法可以让它只返回非空字符串吗?#include#include#includeintmain(){std::stringin="(well)hello(there)world";std::vectortokens;boost::split(tokens,in,boost::is_any_of

c++ - 提高 dpll 算法的性能

我正在用C++实现一个DPLL算法,如wikipedia中所述。:functionDPLL(Φ)ifΦisaconsistentsetofliteralsthenreturntrue;ifΦcontainsanemptyclausethenreturnfalse;foreveryunitclauselinΦΦ←unit-propagate(l,Φ);foreveryliterallthatoccurspureinΦΦ←pure-literal-assign(l,Φ);l←choose-literal(Φ);returnDPLL(Φ∧l)orDPLL(Φ∧not(l));但表现糟糕。在这

c++ - 顶点着色器的定点算法

如果我使用定点(或描述最小游戏单元的1的整数)来描述我的顶点vector,我如何设置OpenGL/特征转换来使用它?如果我在我的顶点着色器中这样做:gl_Position=projectionMatrix*viewMatrix*modelMatrix*vec4(in_Position,1.0)如果我将in_Position作为GL_INT的vec3传入,而我将矩阵作为GL_FLOATmat4传入,是否会进行正确的转换?有性能成本吗?是否可以将我的转换矩阵也设置为定点?这是通过2D游戏完成的,我认为这比3D游戏更可行。我真的更喜欢准确性,因为当事物远离原点时,大map上的位置似乎会下降。

c++ - 从数组中向量化提取特定模式的短裤,并插入到新数组中

我有一个短裤数组,我想从中获取一半的值并将它们放入一个大小为一半的新数组中。我想在这种模式中获取特定值,其中每个block为128位(8条短裤)。这是我将使用的唯一模式,它不需要是“任何通用模式”!白色的值被丢弃。我的数组大小将始终是2的幂。这是它的模糊概念,未向量化:unsignedshortsize=1>=1];unsignedint*uintdata=(unsignedint*)data;unsignedint*uintnewdata=(unsignedint*)newdata;for(unsignedshortuintsize=size>>1,i=0;i我从这样的事情开始:st

c++ - 用 Chudnovsky 算法计算 Pi 数

下面是一些根据Chudnovsky算法计算Pi的C++代码:#include#include#includeintfact(intdigit){intresult=1;for(inti=digit;i>1;i--){result*=i;}returnresult;}intmain(){longdoublepi=0.0;intprecision=10;for(intk=0;k问题是此代码仅返回PI编号的右15位数字,另一部分是垃圾...当精度变量设置为12或更大时,它返回-nan。有人可以帮我吗?TIA编辑:Ubuntu12.10x64,gcc4.7.2 最佳

c++ - 在越来越大的坐标范围内运行 prim 的最快方法

我希望有人能给我一个计算MST的通用方法,该方法适用于从格式如下的输入开始的问题:...我了解如何实现prim的算法,但我一直在寻找一种方法(使用prim的算法)需要最少的内存/时间来执行。我应该将所有内容存储在邻接矩阵中吗?如果顶点数量增加到10,000,解决这个问题的最佳方法是什么(假设使用prim's)? 最佳答案 您真的需要使用Prim的吗?一种简单的方法是在每次添加节点时使用Kruskal算法重新计算生成树(仅使用先前选择的边)。由于Kruskal是O(ElogE)并且在每次迭代中你将有2*V-1个边来计算(来自前一棵树的

c++ - 在输入文本中匹配平衡和嵌套的大括号

我参加了一个测验,我提供了代码,但自动测试显示八个测试用例中有一个失败了。我自己多次测试我的代码,但都通过了。我找不到问题出在哪里。问题是设计一个算法来检查字符串中的括号是否匹配。1)只考虑圆括号()和方括号[],省略其他字符。2)每对括号应相互匹配。也就是说(匹配),[匹配]。3)不允许交叉,如:([)]。有两对支架,但它们相互交叉。解决问题,我的方法如下:搜索整个输入字符串中的每个字符,索引从0到str.size()-1。用两个栈记录开始标签(,和[,每一种类型一个栈,遇到其中一个,将其索引压入对应的栈。当遇到结束标记)和]时,我们弹出相应的堆栈。出栈前先检查两个栈顶,当前栈应该有