草庐IT

algorithm

全部标签

c# - 波前算法

我正在创建一个迷宫程序,其中的迷宫是随机生成的,用户必须找到一个随机放置的立方体。现在,我希望能够让游戏自行解决,使用wavefrontalgorithm,Dijkstra'salgorithm,或A*algorithm?这是生成迷宫墙的代码。publicvoidGenerateMaze(){for(intx=0;xneighborCells=newList();neighborCells.Add(0);neighborCells.Add(1);neighborCells.Add(2);neighborCells.Add(3);while(neighborCells.Count>0){

c - 如何将一个 8 位颜色值拆分为两个 4 位颜色值?

所以我写了一个程序,读取位图并使用windows.h打印到控制台。Windows(在控制台中)允许我为每个字符空间设置两种颜色-前景色和背景色。我仅限于这些颜色的4位调色板:http://www.infotart.com/blog/wp-content/uploads/2008/06/windows_4bit_color_swatches.png我的程序适用于16种颜色,但我无法计算出256种颜色。(或者弄清楚它是否可能)我需要获取索引颜色的RGB值(来自256种8位颜色,例如224、64、0)并将其显示为16种可用颜色中的两种,其中一种经过抖动处理。前景字符将是ASCII抖动字符之一

c# - Windows 操作系统如何检测算法是否符合 FIPS?

当强制使用符合FIPS的算法的Windows设置打开时,如果有一个应用程序在该机器上运行使用不符合FIPS的算法,并且该应用程序会抛出异常,说明它不是WindowsFIPS的一部分执行...我看到有人通过在应用程序代码中注释掉此检查来绕过FIPS检查。如果可以做到这一点,这是否真正符合FIPS标准?Windows如何检测应用程序是否使用符合FIPS的算法? 最佳答案 这些算法由内置于Windows中的库或由Microsoft提供的产品提供,它们包含投诉和非投诉算法。当您的代码调用那些内置库时,这些库包含对窗口设置的检查,如果设置了这

c++ - 如何使用C++同步两台计算机的时钟

我有两台计算机,分别是A和B。我需要确保它们彼此准确同步(在ms的范围内)。一台电脑是windowsbase,另一台是linux。它们通过以太网直接相互连接(一台计算机的电缆连接到另一台计算机)。我可以为它们中的每一个编写C/C++代码。我怎样才能使它们彼此同步y注意到Windows和Linux都不是实时系统,因此您不知道通过以太网发送的数据包需要多长时间才能被另一方接收,因此您无法弥补。由于您需要ms的精度,因此此延迟很重要。有什么算法可以做到这一点吗?windows/Linux中有没有什么函数可以确保当你通过以太网发送数据时,它会立即传递给另一端? 最佳

c# - Shellsort,2.48^(k-1) vs Tokuda 的序列

简介Shellsort是我不久前遇到的一种有趣的排序算法。最神奇的是,不同的空位序列可以显着提高算法的速度。我读了一些书(没有广泛阅读),似乎Tokuda的序列被推荐用于实际应用。另一个有趣的地方是比率2.20~2.25的序列往往效率更高。所以我做了一个小的搜索,考虑从2.20到2.50的比率序列,并尝试搜索哪个比率可以平均表现良好。我遇到了这个比率:2.48,在许多不同的试验中似乎平均表现良好。然后,我想出了序列生成器:2.48k-1(我们称它为248序列)并尝试将其与Tokuda的序列进行比较。事实证明,它们的速度平均相等。248序列倾向于使用稍微多一些的比较。基准方法我没有使用毫

c# - 对地理形状进行分组

我正在使用DundasMaps并试图绘制一张世界地图,其中的国家被分组为特定于业务实现的区域。我有世界上每个国家的形状数据(点和线段)。我可以通过将区域内国家/地区的所有点和线段添加到新的区域形状来将国家/地区合并为区域。foreach(varregioninGetAllRegions()){varregionShape=newShape{Name=region.Name};foreach(varcountryinGetCountriesInRegion(region.Id)){varcountryShape=GetCountryShape(country.Id);regionShap

c# - 高级 : How to optimize my complex O(n²) algorithm

我有以下人员和地点数据:Person实体有IList每个都有IList可能的地方Schedule即日模式。10天可用4天不可用在特定的DateRangePlaces内日期范围必须遵守Schedule人是否可以去特定地方的模式。Place实体有IList每个定义每个日期范围内的开始/结束时间重叠的日期范围作为LIFO。因此,对于之前已经定义的每一天,新的时间定义优先。问题现在我需要做这样的事情(用伪代码):foreachPlace{foreachDaybetweenminimumandmaximumdateinIList{getasetofPeopleapplicableforPlace

c# - 在 C# 中计算素数的最快方法?

我的问题实际上有答案,但它不是并行化的,所以我对改进算法的方法很感兴趣。不管怎样,它对某些人来说可能是有用的。intUntil=20000000;BitArrayPrimeBits=newBitArray(Until,true);/**SieveofEratosthenes*PrimeBitsisasimpleBitArraywhereallbitisaninteger*andwemarkcompositenumbersasfalse*/PrimeBits.Set(0,false);//Youdon'tactuallyneedthis,justPrimeBits.Set(1,false

c# - 从许多多边形的并集构造多边形

假设我有很多多边形,从所有这些多边形的并集构造一个多边形(可能有洞)的最佳算法是什么?就我的目的而言,您可以将多边形的每一block想象成一block拼图,当您完成它们时,您会得到一张漂亮的图片。但美中不足的是拼图少了一小部分(比如说我天真的方法是取两个多边形,将它们并集,然后取另一个多边形,将其与两个多边形的并集并集,并重复此过程,直到每一block都成为并集。然后我会遍历联合多边形列表,检查是否还有一些多边形可以合并,我会重复这个过程,直到得到满意的结果。但这似乎是一种极其幼稚的做法。我只是想知道还有其他更好的算法吗? 最佳答案

c# - 查找数组中的重叠数据

我们正在编写一个C#应用程序来帮助删除不必要的数据重复器。一个转发器只有在它接收到的所有数据都被其他转发器接收到的情况下才能被删除。我们需要做的第一步解释如下:例如,我有int数组的集合a.{1,2,3,4,5}b.{2,4,6,7}c.{1,3,5,8,11,100}可能有成千上万个这样的数组。我需要找到可以删除的数组。一个数组只有在其所有数字都包含在其他数组中的情况下才能被删除。在上面的示例中,可以删除数组a,因为它的数字2和4在数组b中,而数字1、3、5在数组c.做这样的操作最好的方法是什么? 最佳答案 这是未针对剩余最少数量