Tag: algorithm

将数字转换为字母组合

我需要将1到6000000之间的数字转换为像ABCDE这样的字母组合。 少写字母更好。 但我猜我需要4或5。 有人能指出我正确的方向,如何编写一个算法将数字转换为字母和背面? 只有AZ。 (帽)。

扩展基本类型并自动更新实体的审核信息

我有一个实体模型,每个表都有审计信息(50多个表) CreateDate CreateUser UpdateDate UpdateUser 目前,我们以编程方式更新审计信息。 例如: if(changed){ entity.UpdatedOn = DateTime.Now; entity.UpdatedBy = Environment.UserName; context.SaveChanges(); } 但我正在寻找一种更自动化的解决方案。 在保存更改期间,如果创建/更新实体,我希望在将这些字段发送到数据库进行存储之前自动更新这些字段。 有关如何做到这一点的任何建议? 我宁愿不做任何反思,所以使用文本模板并非不可能。 已经提出了一种解决方案来覆盖SaveChanges并在那里进行,但是为了实现这一点,我要么必须使用reflection(我不想做)或者派生基类。 假设我沿着这条路走下去,我将如何实现这一目标? 例如 EXAMPLE_DB_TABLE CODE NAME –Audit Tables CREATE_DATE CREATE_USER UPDATE_DATE UPDATE_USER 如果我创建一个基类 public abstract class IUpdatable{ public virtual DateTime CreateDate {set;} public virtual string CreateUser { set;} public virtual DateTime UpdateDate { set;} public […]

是否存在快速且非花哨的C#代码/算法来压缩接近最大信息密度的逗号分隔数字串?

简而言之,我通过创建执行行ID连接的CLR聚合将自己编程到一个角落,所以我说: select SumKeys(id), name from SomeTable where name=’multiple rows named this’ 我得到类似的东西: SumKeys name ——– ——— 1,4,495 multiple rows named this 但是当SumKeys获得超过8000个字符时它就会死掉,而我认为我无法做任何事情。 作为一个快速解决方案(它只有1%的时间用于我的应用程序)我认为我可能压缩字符串,我认为你们中的一些聪明的人可能知道一个光滑的方式来做到这一点。 类似于base64的0-9和逗号?

找到超速的时期?

我脑海里浮现出一些有趣的东西。 假设我们有一个表(在SQL Server中),如下所示: 地点 速度 时间 例如: Location Velocity Time 1 40 1:20 2 35 2:00 3 45 2:05 4 50 2:30 5 60 2:45 6 48 2:55 7 40 3:00 8 35 3:15 9 50 3:20 10 70 3:30 11 50 3:35 12 40 3:40 假设速度障碍是40kph,输出是这样的 Starttime Endtime 2:05 3:00 3:20 3:35 确定超速时间的最佳方法是什么(定义了速度障碍)? 我的第一个想法是将表加载到数组中,然后迭代数组以查找这些句点: […]

jpeg的色度子采样算法

我正在尝试编写一个jpeg编码器,并且在创建收集适当的Y,Cb和Cr颜色分量的算法时感到磕磕绊,以便传递给执行变换的方法。 据我所知,四个最常见的子采样变体设置如下(我可能会离开这里): 4:4:4 – 每个像素中包含Y,Cb和Cr的8×8像素的MCU块。 4:2:2 – 一个16×8像素的MCU块,每个像素为Y,每两个像素为Cb,Cr 4:2:0 – 一个16×16像素的MCU块,每两个像素为Y,每四个像素为Cb,Cr 到目前为止,我已经找到了关于laout的最明确的描述 我不明白的是如何以正确的顺序收集这些组件以作为8×8块进行转换和量化。 有人能够写一个例子,(伪代码可以,我确定,C#甚至更好),如何分组变换的字节? 我将包含我正在运行的当前不正确的代码。 /// /// Writes the Scan header structure /// /// The image to encode from. /// The writer to write to the stream. private void WriteStartOfScan(ImageBase image, EndianBinaryWriter writer) { // Marker writer.Write(new[] { JpegConstants.Markers.XFF, JpegConstants.Markers.SOS }); // Length (high byte, […]

随机串c#

我想知道随机串 示例字符串 string word; //I want to shuffle it word = “hello” 我能得到: rand == “ohlel” rand == “lleho” etc.

用于访问N(未知)维度矩阵中的所有点的算法

我有一个多维矩阵,可以有任何数量的维度大于一。 寻找可以访问矩阵中每个点的有效算法。 关于代码的一些信息:矩阵具有值访问器(尽管这些并不真正相关)。 object value = matrixInstance.GetValue(int[] point); matrixInstance.SetValue(object value, int[] point); 注意:参数点是索引数组,必须与维度匹配,否则抛出exception。 有关矩阵结构的信息可以通过以下方式获得: int numDims = matrixInstance.Rank; //# dimensions int sizeDim = matrix.getRankSize(int index); // length of specified dimension 我想使用相对有效的算法迭代矩阵的所有可能点。 例如,在2×3 2D矩阵中,将访问以下六个点: [0,0] [0,1] [0,2] [1,0] [1,1] [1,2] 该算法必须达到N维:2,3,4等。 为了提高效率,我最终会使用C#迭代器来返回点数。

如何比较两个捕获以查看哪个更响亮?

给定从麦克风捕获的两个字节数据arrays,如何确定哪个数据中的噪声峰值更多? 我假设有一个算法我可以应用于数据,但我不知道从哪里开始。 说到这一点,我需要能够确定婴儿哭闹的时间与房间内的环境噪音。 如果它有帮助,我使用Microsoft.Xna.Framework.Audio.Microphone类来捕获声音。

为什么插入排序总是在此实现中击败合并排序?

我不明白:为什么我的插入排序实现每次跳过合并排序,对于任何大小的n ? public List InsertionSort(List elements, Boolean ascending = true) { for (Int32 j = 1; j = 0 && (elements[i].CompareTo(key) > 0) == ascending) elements[i + 1] = elements[i–]; elements[i + 1] = key; } return elements; } public List MergeSort(List elements, Boolean ascending = true) { Sort(elements, 0, elements.Count – 1); return elements; […]

在C#中超过100k +字符串的快速动态模糊搜索

假设它们是预先加载的股票代码,键入文本框。 我正在寻找可以复制的代码,而不是要安装的库。 这是受这个问题的启发: 是否有为C#编写的模糊搜索或字符串相似性函数库? Levenstein距离算法似乎运行良好,但计算需要时间。 当用户输入额外的字母时,是否需要重新运行查询这一事实是否有任何优化? 我有兴趣最多显示每个输入的前10个匹配项。