Tag: 算法

在.NET中使用正则表达式从字符串中提取标记

我很好奇是否可以使用正则表达式。 我想从类似于以下字符串的字符串中提取标记: Select a [COLOR] and a [SIZE]. 好的,很简单 – 我可以使用(\[[AZ]+\]) 但是,我还想在令牌之间提取文本。 基本上,我希望上面的匹配组是: “Select a ” “[COLOR]” ” and a ” “[SIZE]” “.” 对此最好的方法是什么? 如果有办法用RegEx做到这一点,那就太好了。 否则,我猜我必须提取标记,然后手动循环遍历MatchCollection并根据每个匹配的索引和长度解析子字符串。 请注意我需要保留字符串和标记的顺序。 有没有更好的算法来进行这种字符串解析?

数组中最常见的数字

我有这个数组我写了一个函数MostFreq,它接受一个整数数组并返回2个值:数组中更频繁的数字和它的频率检查这个代码我觉得你觉得怎么样? 有更好的方法吗? static void Main() { int [] M={4,5,6,4,4,3,5,3}; int x; int f=MyMath.MostFreq(M,out x ); console.WriteLine(“the most Frequent Item = {0} with frequency = {1}”,x,f); } ===== 在Mymathclass public static int MostFreq(int[] _M, out int x) { //First I need to sort the array in ascending order int Max_Freq, No_Freq, i, k; Array.Sort(_M); k = […]

加倍数 – 左移与乘法

有什么区别 int size = (int)((length * 200L) / 100L); // (1) 和 int size = length << 1; // (2) (两种情况下长度均为int) 我假设两个代码片段都想要加倍长度参数。 我很想使用(2)……所以使用(1)有什么好处吗? 我查看溢出发生时的边缘情况,两个版本似乎都有相同的行为。 请告诉我我错过了什么。

合并排序代码不起作用并显示exception

public static void Merge(int[] arr,int p,int q,int r ) { int n1 = qp; int n2 = rq; int[] L=new int[n1]; int[] R = new int[r-n2]; for (int i = 0; i < n1; i++) L[i] = arr[i]; foreach (int x in L) Console.WriteLine(x); for (int i = 0; i < n2; i++) R[i] = […]

管理SQL表中位置的算法

我有一个小疑问,如何管理以下情况。 在数据库表中,我将相关数据保存在不同的列中,最后我将精确的顺序保存在名为position的列中。 此表绑定到网格。 现在我正在实现将更改行的位置的function,但我还需要更新数据库。 我问的是什么是最佳实践或最方便的方法来实现这一目标? 建议是值得欢迎的。 例 姓名职位 abc 1 def 2 ghj 3 现在我点击按钮,我得到以下内容 姓名职位 def 1 abc 2 ghj 3 我希望我已经解释过了自己! 根据评论,这是一个真实的例子: TABLE1有3列ID1,ID2,POSITION ID1和ID2是FK,表格具有基于ID1和ID2的PK 当我选择要显示的数据时,我使用以下查询SELECT NAME,ETC FROM TABLE2 INNER JOIN TABLE1 ON ID1 = ID1 WHERE ID2 = 511 ORDER BY POSITION 现在我需要更改两个元素的位置,因此TABLE1中的行(例如311,511,5)需要变为311,511,4,而行433,511,4的行需要变为433,511,5。 相反的。 我希望这有助于澄清我的问题。 干杯!

垂直翻转字节数组中位图的算法

我正在通过Mono For Android为Android中的便携式蓝牙打印机编写一个用于打印位图的课程。 我的类用于从流中获取像素数据,以便可以以正确的格式将其发送到打印机。 现在这个类很简单,它只读取每个像素的高度,宽度和位数。 使用它读取的偏移量并将像素数据返回给打印机。 现在我只使用每像素1位黑白图像。 我正在使用的位图是Windows格式。 这是原始图像: 这是打印的结果,第一张图片没有任何变换。 第二个是使用以下代码修改BitArray的结果: BitArray bits = new BitArray(returnBytes); BitArray flippedBits = new BitArray(bits); for (int i = 0, j = bits.Length – 1; i < bits.Length; i++, j–) { flippedBits[i] = bits[j]; } 我的问题是: 当我使用字节数组时,如何垂直翻转图像。 我无法找到执行此操作的算法,所有示例似乎都建议使用我无法使用的已建立的图形库。 编辑: 我的位图保存在一维数组中,第一行是字节,第二行是第三,等等。

计算一个数字的模数(该功率的数量非常大)

我想自己计算RSA算法。 我需要计算一定功率下的数的模数。 问题在于那个特定能量的数字会变得很大。 这就是我想要的: x = pow(n, p) % q 我怎样才能有效地确定x?

如何根据需要最好地生成随机数的静态数组?

我正在处理的应用程序需要一个随机数矩阵。 矩阵可以随时在任何方向上生长,并不总是满的。 (我可能最终会用四叉树或其他东西重新实现它,而不是带有很多空对象的矩阵。) 我需要一种方法来生成相同的矩阵,给定相同的种子,无论我以何种顺序计算矩阵。 LazyRandomMatrix rndMtx1 = new LazyRandomMatrix(1234) // Seed new object float X = rndMtx1[0,0] // Lazily generate random numbers on demand float Y = rndMtx1[3,16] float Z = rndMtx1[23,-5] Debug.Assert(X == rndMtx1[0,0]) Debug.Assert(Y == rndMtx1[3,16]) Debug.Assert(Z == rndMtx1[23,-5]) LazyRandomMatrix rndMtx2 = new LazyRandomMatrix(1234) // Seed second object Debug.Assert(Y == rndMtx2[3,16]) // Lazily […]

如何生成给定大小的所有子集?

给定一些数字n和一个子集大小,我想获得集合{1,…,n}的指定大小的所有可能子集。 n = 5和subsetSize = 4预期结果: {{1,2,3,4}, {1,2,3,5}, {1,3,4,5}, {1,2,4,5}, {2,3,4,5}} (这将是List<List> ) 这意味着我需要得到(subsetSize选择n)子集(牛顿符号)。 算法的任何想法可以找到我这样的整数列表列表? 我正在用C#实现它,如果这很重要的话。

列出所有可能的组合

我有一个与组合有关的问题。 我实际上正在开发一个电子商务网站,我有一个function,允许客户创建产品变体。 例如:黑色裤子34W 30L,黑色裤子38W 32L,白色裤子34W 30l。 这些被定义为产品变体。 假设我的裤子有3个选项,它们是颜色,腰围尺寸和长度。 我现在有3个清单。 ListA = {“black”, “white”, “red”} //For the color ListB = {30,32,34,36,38} //For the waist ListC ={28,30,32,34} //For the length 我的问题是如何列出所有可能的组合? 我想要的结果应该像{{black,30,28},{black,30,30},{black,30,32},{white,34,30}} PS棘手的部分是我不知道客户将为此产品分配多少选项。 选项的计数可能只有1,这是最简单的; 它可能超过3 … 问题解决了 因为我们不知道我们会有多少选择。 因此,我们不知道将要使用多少for循环。 换句话说,它转向典型的笛卡尔积。 有关更多信息,请阅读这两个链接。 http://www.interact-sw.co.uk/iangblog/2010/07/28/linq-cartesian-1 http://blogs.msdn.com/b/ericlippert/archive/2010/06/28/computing -a笛卡尔积与- linq.aspx 谢谢你的帮助!