Tag: algorithm

如何计算Pascal三角形中给定行和列的数字?

我正在尝试创建一个函数,给定行和列,将计算Pascal三角形中该位置的值。 例: val = GetPasVal(3, 2); // returns 2 所以我在这里指定第3行第2列,如您所见: 1 1 1 1 2 1 ……应该是2。

二进制搜索树遍历,比较两个指针的相等性

我正在阅读Cormen算法手册(二叉搜索树章节),它说有两种方法可以在没有递归的情况下遍历树: 使用堆栈和一个更复杂但更优雅的解决方案,它不使用堆栈,但假设可以测试两个指针的相等性 我已经实现了第一个选项(使用堆栈),但不知道如何实现后者。 这不是一个家庭作业,只是阅读教育自己。 有关如何在C#中实现第二个的任何线索?

从列表中删除重复值的最佳算法

从列表中删除重复值的最佳算法是什么? 我试过这个: for (int i = 0; i < AuthorCounter-1; i++) { for (int j = 0; j < AuthorCounter-1; j++) { if (i != j) { if (AuthorGroupNode.Nodes[i].Text == AuthorGroupNode.Nodes[j].Text) { AuthorGroupNode.Nodes[j].Remove(); AuthorCounter–; } } } } 这里, AuthorGroupNodes是节点上的列表。 它在某种程度上做得对,但并不完美。 谁有更好的解决方案???

分组地理形状

我正在使用Dundas Maps并尝试绘制世界地图,其中国家/地区被分组到特定于业务实现的区域。 我有世界上每个国家的形状数据(点和段)。 我可以通过将区域内的所有国家/地区的所有点和细分添加到新的区域形状来将国家/地区组合到一起。 foreach(var region in GetAllRegions()){ var regionShape = new Shape { Name = region.Name }; foreach(var country in GetCountriesInRegion(region.Id)){ var countryShape = GetCountryShape(country.Id); regionShape.AddSegments(countryShape.ShapeData.Points, countryShape.ShapeData.Segments); } map.Shapes.Add(regionShape); } 问题是国家边界线仍然出现在一个区域内,我想删除它们,以便只显示区域边界。 Dundas多边形必须在同一点开始和结束。 所有国家形状都是如此。 现在我需要一个能够: 确定国家边界在区域边界的交叉点,以便我可以加入区域边界段。 确定哪些国家/地区边界不是区域边界,以便我可以丢弃它们。 对生成的区域点进行排序,以便它们按顺序描述形状边界。 以下是我到目前为止使用地图的地方。 您可以看到仍需要删除国家/地区边界。 例如,蒙古和中国之间的边界应该被丢弃,而蒙古和俄罗斯之间的边界应该保留。 我需要保留区域边界的原因是区域颜色在传达信息方面很重要,但相邻区域可能是相同的颜色。 这些地区可以改变以包括或排除国家,这就是为什么区域塑造必须是动态的。 编辑:我现在知道我正在寻找的是一个多边形联盟。 David Lean 解释了如何使用SQL Server 2008中的空间函数来执行此操作,这可能是一个选项,但我的努力已经停止,因为生成的多边形联合非常复杂,以至于SQL将其截断为43,480个字符。 我现在正在尝试为此找到解决方法或找到在代码中进行联合的方法。

用坐标计算二维形状的最小边界矩形

我有一个解决方案,使用空间数据来表示地图上的一组点。 我需要使用表示簇的范围的坐标来找到可以包含所述点簇的最小边界矩形。 是否存在能够计算此算法的简单算法,或者C#中是否存在任何内置function来实现此目的。 我知道NetTopologySuite,但我不确定如何/如果我可以使用它来实现相同的目标。 我有一个坐标列表,所以我需要将这个字符串列表传递给它并获得MBR。

用于创建数独板的暴力算法

我正在开发的是,最初整个数独板都是空的。 其中一个随机单元(81个中)填充了随机值(1-9)。 现在我想用蛮力方法填充所有剩余的细胞。 从我在谷歌搜索后得知的是,我们应该从第一个单元格开始并用1填充它(如果它有效),然后用2填充第二个单元格(如果它有效,我们将开始检查大于最后填充的单元格,在这种情况下为1,一旦达到9,我们将其重置为1)。 问题是它不能正常工作! 任何人都可以将我链接到确切的算法。

GPS / GIS计算:基于运动/英里/小时预测未来位置的算法?

寻找资源或算法来计算导航应用中的以下内容: 如果我当前的GPS位置是(0,0)并且我以每小时15英里的速度前进32度,我该如何计算我的位置在10秒内的位置? 即: GPSCoordinate predictedCoord = GPSCoordinate.FromLatLong(0, 0).AddByMovement(32, 15, TimeSpan.FromSeconds(10)); 编辑:基于以下答案的当前代码: public GPSCoordinate AddMovementMilesPerHour(double heading, double speedMph, TimeSpan duration) { double x = speedMph * System.Math.Sin(heading * pi / 180) * duration.TotalSeconds / 3600; double y = speedMph * System.Math.Cos(heading * pi / 180) * duration.TotalSeconds / 3600; double newLat = this.Latitude + 180 / […]

C#:阿特金筛选的实施

我想知道是否有人在这里有一个很好的实施他们想要分享的阿特金筛选。 我正在尝试实现它,但不能完全包围它。 这是我到目前为止所拥有的。 public class Atkin : IEnumerable { private readonly List primes; private readonly ulong limit; public Atkin(ulong limit) { this.limit = limit; primes = new List(); } private void FindPrimes() { var isPrime = new bool[limit + 1]; var sqrt = Math.Sqrt(limit); for (ulong x = 1; x <= sqrt; x++) for (ulong […]

地址匹配密钥算法

我有两个单独的表中的地址列表,略微偏离我需要能够匹配。 例如,可以通过多种方式输入相同的地址: 110 Test St 110 Test St. 110 Test Street 虽然简单,但你可以想象更复杂的场景中的情况。 我正在尝试开发一种能够将上述地址作为关键字匹配的简单算法。 例如。 关键可能是“11TEST” – 110的前两个,测试的前两个和街道变体的前两个。 完整匹配键也将包括前5个邮政编码,因此在上面的示例中,完整键可能看起来像“11TEST44680”。 我正在寻找有效的算法或资源的想法,我可以在开发时考虑这些因素。 任何想法都可以是伪代码或您选择的语言。 我们只关心美国的地址。 事实上,我们只查看来自俄亥俄州和密歇根州的250个邮政编码的地址。 我们也无法访问任何邮政软件,尽管对于具有成本效益的解决方案的想法是开放的(它基本上是一次性使用)。 请注意,这是来自政府来源的初始数据转储,因此有关用户如何清理它的建议对我构建应用程序很有帮助,但我希望能够将地址匹配为最佳状态。尽可能好。

C#CRC实现

我正在尝试将串行端口设备集成到我的应用程序中,这需要对我发送给它的字节进行CRC-CCTTvalidation。 我是管理字节数据包的新手,需要帮助。 它使用此公式进行CRC演算: [CRC-CCITT P(X)= X16 + C12 + C8 + 1] 因此,例如对于数据包:0xFC 0x05 0x11,CRC为0x5627。 然后我将此数据包发送到设备:0xFC 0x05 0x11 0x27 0x56 此外,数据包长度将在5到255之间变化(包括CRC校验字节) 我不知道如何实现这一点,所以欢迎任何想法/建议。 希望我明确表示清楚,先谢谢。 编辑:这是我需要做的规范: