草庐IT

递归算法举例

全部标签

社区发现算法——Louvain 算法

Louvain算法原始论文为:《Fastunfoldingofcommunitiesinlargenetworks》。所以又被称为Fastunfolding算法。Louvain算法是一种基于模块度的社区发现算法。其基本思想是网络中节点尝试遍历所有邻居的社区标签,并选择最大化模块度增量的社区标签。在最大化模块度之后,每个社区看成一个新的节点,重复直到模块度不再增大。首先复习下模块度:这里引入了权重方便扩展到有权图,但其实对于无权图,可以看做所有边权重为1,这时候就等于用节点的度计算,用度理解一样。算法详述:模块度优化阶段:每个节点将自己作为自己社区标签。每个节点遍历自己的所有邻居节点,尝试将自己

SIFT算法详解

大纲引言一、高斯金字塔二、高斯差分金字塔三、特征点处理1.阈值化2.非极大值抑制3.二阶泰勒修正4.低对比度去除5.边缘效应去除四、特征点描述子1.确定特征点区域方向2.特征点区域描述子总结参考:引言 SIFT算法是为了解决图片的匹配问题,想要从图像中提取一种对图像的大小和旋转变化保持鲁棒的特征,从而实现匹配。这一算法的灵感也十分的直观:人眼观测两张图片是否匹配时会注意到其中的典型区域(特征点部分),如果我们能够实现这一特征点区域提取过程,再对所提取到的区域进行描述就可以实现特征匹配了。于是问题就演变成了以下几个子问题:应该选取什么样的点作为特征点呢?:人眼对图像中的高频区域更加的敏感,由此我

具有尾递归优化的 C# 编译?

基于丰富的stackoverflow,我一直在断断续续地回答尾递归优化是否针对特定的c#代码进行。几个问题似乎在谈论对正在发布的较新版本的.net进行优化的推测将应用构建为x64位应用以实现优化在VisualStudio中从调试版本切换到发布版本以实现优化根本没有优化,并且微软社区声称他们不会针对“安全问题”进行尾递归优化(并没有真正理解这一点)它是随机发生的那么从C#4.0(VisualStudio2013/2015)开始,如果可以确保尾递归优化,如何确保它呢? 最佳答案 可以支持尾调用优化的不同级别。JIT实际上负责任何.NET

c# - 实心圆的中点圆算法

Midpointcirclealgorithm可用于栅格化圆的边界。但是,我希望圆圈被填充,而不是多次绘制像素(这很重要)。这个答案提供了一个生成实心圆的算法的修改,但是一些像素被访问了几次:fastalgorithmfordrawingfilledcircles?问:如何在不多次绘制像素的情况下光栅化一个圆?请注意,RAM非常有限!更新:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceCircleTest{classProgram{staticvoidMain

c# - 如何使用 AWS S3 API 以非递归方式浏览目录的内容?

假设我在AmazonS3存储桶中有以下目录和文件(文件以粗体显示):桶名/桶名/文件夹1/bucketname/folder1/foobar.txt桶名/文件夹1/子文件夹1/bucketname/folder1/subfolder1/hello.txt桶名/文件夹1/子文件夹2/bucketname/folder1/subfolder2/world.txtbucketname/folder1/subfolder2/subsubfolder1/bucketname/folder1/subfolder2/subsubfolder1/file.txt如何使用.NETAWSS3API列出给定

C# - 递归/反射属性值

在C#中执行此操作的最佳方法是什么?stringpropPath="ShippingInfo.Address.Street";我将有一个属性路径,就像上面从映射文件中读取的那样。我需要能够询问Order对象下面代码的值是什么。this.ShippingInfo.Address.Street平衡性能与优雅。所有对象图关系都应该是一对一的。第2部分:如果它是List或类似的东西,添加它获取第一个的能力有多难。 最佳答案 也许是这样的?stringpropPath="ShippingInfo.Address.Street";objectp

c# - TSP遗传算法中的交叉操作

我正在尝试解决TravellingSalesmanProblem(TSP)与Geneticalgorithm.我的基因组是图中顶点的排列(推销员的路径)。我应该如何对我的基因组进行交叉操作?在哪里可以找到我的问题在C#中的实现? 最佳答案 您应该查看GokturkUcoluk的“GeneticAlgorithmSolutionoftheTSPAvoidingSpecialCrossoverandMutation”。它概述了用于排列的特殊交叉运算符,并提出了一种巧妙的排列表示形式,可以很好地与标准交叉配合使用(即交叉两个排列总是产生两

c# - 使用 Entity Framework Fluent 语法或内联语法编写递归 CTE

我不熟悉SQL和EntityFramework(ADO.NET实体映射)中的这种递归。我正在处理评论管理,其中有一个Comments表,该表包含列NewsID、CommentID、ParentCommentID、IndentLevel、CreatedTime。我正在尝试获取特定新闻项的评论列表,其中所有评论都是根据父项下的子项和创建时间排列的,如下所示:CommentID|time|ParentCommentIDGuid1|t1|nullGuid4|t4|Guid1Guid2|t2|nullGuid3|t3|Guid2必须优先考虑子父关系,然后是创建时间。到目前为止我学到的是(来自互联

c# - 递归 LINQ 查询 : select item and all children with subchildren

有没有什么方法可以编写一个LINQ(或过程式)查询,它可以通过一个查询选择一个项目和所有子项?我有实体:publicclassComment{publicintId{get;set;}publicintParentId{get;set;}publicintText{get;set;}}我有一个ID,所以我想选择带有ID的Comment及其所有子项和子项。示例:1-2--3-4-5--623如果ID==1那么我想要1,2,3,4,5,6的列表。 最佳答案 publicclassComment{publicintId{get;set;}

c# - 在两个大数之间获得素数的高效算法

我是C#的初学者,我正在尝试编写一个应用程序来获取用户输入的两个数字之间的素数。问题是:在大数(有效数在1到1000000000范围内)获取素数需要很长时间,根据我要解决的问题,整个操作必须在一个小的时间间隔内进行。这是更多解释的问题链接:SPOJ-Prime这是我的代码中负责获取质数的部分:publicvoidGetPrime(){intL1=int.Parse(Limits[0]);intL2=int.Parse(Limits[1]);if(L1==1){L1++;}for(inti=L1;i有没有更快的算法?提前致谢。 最佳答案