草庐IT

改进灰狼优化算法

全部标签

c# - 为什么这里没有发生尾调用优化?

我们正在使用递归来查找因子并收到StackOverflow异常。我们读过theC#compileronx64computersperformstailcalloptimizations:JITdefinitelydoestailcalswhenrunningoptimizedcodeandnotdebugging.在我们的程序中运行dotnet--configurationrelease可以做到这一点:...7214isafactorof12345678907606isafactorof123456789010821isafactorof123456789011409isafactor

c# - 帮助理解 C# 优化

我正在玩C#,想加快程序的速度。我进行了更改并且能够这样做。但是,我需要帮助来理解为什么更改使其更快。我试图在一个问题中将代码简化为更容易理解的内容。Score1和Report1是较慢的方式。Score2和Report2是更快的方法。第一种方法首先将一个字符串和一个整数并行存储在一个结构中。接下来,在串行循环中,它循环遍历这些结构的数组并将它们的数据写入缓冲区。第二种方法首先将数据并行写入字符串缓冲区。接下来,在串行循环中,它将字符串数据写入缓冲区。以下是一些示例运行时间:运行1总平均时间=0.492087秒运行2总平均时间=0.273619秒当我使用它的早期非并行版本时,时间几乎相同

c# - 通过代码从图像中裁剪空边框的简单算法?

目前我正在C#/.NET中寻找一种相当快速且相当准确的算法来在代码中执行这些步骤:将图像加载到内存中。从位置(0,0)的颜色开始,找到未被占用的空间。剪掉这个不必要的空间。我已经说明了我想要实现的目标:我能想到的是获取(0,0)处像素的颜色,然后执行一些unsafe逐行/逐列遍历所有像素,直到我用另一种颜色遇到一个像素,然后切掉边框。我只是担心这真的很慢。所以我的问题是:您是否知道任何快速算法(最好没有任何第3方库)从内存图像/位图中删除“空”边框?旁注:算法应该“合理准确”,而不是100%准确。一些容差,例如裁剪过多或过少的一行都可以。补充1:我刚刚以最简单的方式实现了我的蛮力算法。

c# - 比较两个列表并找到这两个列表之间的增量的最有效模式/算法是什么?

我们有两个列表,比如说学生和他们的分数。我想比较这两个列表并找到新列表和旧列表之间的增量,然后找到侵入性最小的方式将任何更改插入或更新到新列表中。解决这个问题的最佳算法是什么?希望专注于对新列表和性能进行最少的更改。示例代码:ListexistingList=newList();ListnewList=newList();publicTopLists(){InitTwoLists();}privatevoidInitTwoLists(){existingList.Add(newListItem{Name="Shane",Score=100});existingList.Add(newL

c# - 为什么我的字节在加密算法的这个 C# 端口的第四轮不同?

我正在尝试将C++代码移植到C#并且在大多数情况下它都可以正常工作,但仅适用于循环的前3轮。在第四轮,输入block的字节开始不同,我不明白为什么。如果我们假设C++版本是正确的实现,为什么C#代码在第四轮给出不同的结果。下面是我的结果和代码(C++/CLR和C#的控制台应用程序)我认为输入block在传递给AES之前在每一轮中创建的方式有所不同(在C++中,有一种方法可以转换为基数256,to_base_256和from_base_256)但在C#中,我将基本256字节数组直接转换为BigInteger,然后再转换回字节数组。我只是不知道为什么每个人都会在前3轮中产生相同的输入blo

c# - 用于修复 .NET 应用程序以解决 SQL Server 超时问题并改进执行时间的 list

用于改进.NET代码和SQLServer之间的执行时间的list。任何从基本到奇怪的解决方案都值得赞赏。代码:通过avgbody更改命令和连接中的默认超时.avgbody使用存储过程调用而不是内联sql语句.使用JayShepherd的事件监视器查找阻止/锁定.SQL服务器:注意存储过程中的参数嗅探AlexCuse.注意动态增长数据库MartinClarke.通过BradO使用Profiler查找任何花费超过100毫秒的查询/存储过程.将事务超时增加avgbody.通过avgbody将动态存储过程转换为静态存储过程.通过JayShepherd检查服务器有多忙.

c# - 在字符串中查找关键字和关键短语的算法

我需要有关如何编写算法以在字符串中查找关键字或关键短语的建议或指导。字符串包含:以英语(GB)编写的技术信息单词之间大多用空格隔开关键字不包含空格,但可以包含连字符、撇号、冒号等。关键词可以包含空格、逗号或其他标点符号如果两个或多个关键字一起出现,那么它很可能是一个关键短语,例如“变频驱动”文本还包含HTML,但如有必要,可以事先将其删除非关键字可以是“and”、“the”、“we”、“see”、“look”等词。关键字不区分大小写,例如“逆变器”和“逆变器”是同一个关键字算法有如下要求:在批处理场景中操作,例如每天跑一次或两次处理长度从大约200到7000个字符不等的字符串在不到1小

C#,奇怪的优化

我正在尝试阅读我编译的C#代码。这是我的代码:using(OleDbCommandinsertCommand=newOleDbCommand("...",connection)){//dosuperstuff}但是!我们都知道using会被翻译成这样:{OleDbCommandinsertCommand=newOleDbCommand("...",connection)try{//dosuperstuff}finally{if(insertCommand!=null)((IDisposable)insertCommand).Dispose();}}(因为OleDbCommand是引用类

c# - 锦标赛分组算法(NCAA 等)

我正在尝试在我的程序中实现一个括号(使用C#/.NETMVC),但我一直在尝试找出一些算法。例如,我有一个这样的括号,其中包含8个条目(A、B、C、D、E、F、G、H)我想弄清楚是否有一种算法方法可以根据条目数,找出条目数每轮比赛根据条目数,对于具体游戏#,是什么下一个对应的游戏#圆?例如,在这种情况下,对于8个条目,示例是:第一轮有4场比赛。第二轮,2场比赛。第3轮,1场比赛第1轮的第2场比赛对应第2轮的第5场比赛。我也考虑过将这些信息存储在一个表中,但它似乎有点过分了,因为它永远不会改变,但无论如何它就在这里:任何帮助将不胜感激!干杯,院长 最佳答案

c# - 从大小为 n 的列表中查找哪些数字与另一个数字相加的算法

我有一个十进制数(我们称之为目标)和一个由其他十进制数组成的数组(我们称之为数组元素),我需要找到所有组合来自元素的总和为目标的数字。我更喜欢C#(.Net2.0)中的解决方案,但不管怎样,最好的算法都可能获胜。您的方法签名可能类似于:publicdecimal[][]Solve(decimalgoal,decimal[]elements) 最佳答案 有趣的答案。感谢您对维基百科的指点-虽然很有趣-他们实际上并没有解决我正在寻找完全匹配的问题-更多的是会计/账簿平衡问题,而不是传统的装箱/背包问题。我一直很感兴趣地关注堆栈溢出的发展