Tag: algorithm

algorithm:椭圆匹配

我有许多像下面这样的图像(只有白色和黑色): 我最后的问题是find匹配的椭圆。 不幸的是,真正使用的图像并不总是那么好。 他们可能会变形一点,这使得椭圆匹配可能更难。 我的想法是find“断点”。 我在下面的图片中标记它们: 也许这些点可以帮助做一个椭圆匹配。 最终的结果应该是这样的: 有人知道什么algorithm可以用来find这些断点吗? 或者更好的做出好的椭圆匹配? 非常感谢你

PHP中的组合,部署和排列

什么是最有效的方式来产生在PHP中的数组的所有组合,部署和排列?

快速确切​​bigint阶乘

我有一个定点bumber数据库,并希望实现快速因子没有精度损失。 在纸上的一些math技巧之后,我得到了这个公式: (4N)!=((2N)!).((2N)!).{ (2N+1).(2N+3).(2N+5)…(4N-1) }.(2^N)/(N!) 这已经很快了,而且有些编程技巧的复杂性接近〜O ~ O(log(n)) 。 要清楚,我目前的实施是这样的: //————————————————————————— longnum fact(const DWORD &x,longnum &h) // h return (x>>1)! to speed up computation { if (x==0) { h=1; return 1; } if (x==1) { h=1; return 1; } if (x==2) { h=1; return 2; } if (x==3) { h=1; return 6; } if (x==4) […]

打印给定元素的排列程序

我最近参加了ACMauthentication编程竞赛。 这是我当时做不到的问题: “给定一个具有n个元素的整数数组,写一个程序来打印所有的排列。” 请告诉我如何做这个问题。 有没有任何algorithm来做这样的问题?

最长的子序列

给定一个input序列,find最长(不一定是连续的)非递减子序列的最好方法是什么? 0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15 # sequence 1, 9, 13, 15 # non-decreasing subsequence 0, 2, 6, 9, 13, 15 # longest non-deceasing subsequence (not unique) 我正在寻找最好的algorithm。 如果有代码,Python会很好,但任何事情都可以。

快速的方法来计算n! mod m其中m是素数?

我很好奇,如果有一个好办法做到这一点。 我目前的代码是这样的: def factorialMod(n, modulus): ans=1 for i in range(1,n+1): ans = ans * i % modulus return ans % modulus 但它似乎很慢! 我也不能计算n! 然后应用素数模,因为有时n很大,n! 明确计算是不可行的。 我也遇到http://en.wikipedia.org/wiki/Stirling%27s_approximation,并想知道这是否可以在这里以某种方式使用? 或者,我怎样才能创build一个recursion,memoized函数在C + +?

计算一组数字的所有子集

我想find一组整数的子集。 它是具有回溯的“子集和”algorithm的第一步。 我写了下面的代码,但它没有返回正确的答案: 码: BTSum(0, nums); ///************** ArrayList<Integer> list = new ArrayList<Integer>(); public static ArrayList<Integer> BTSum(int n, ArrayList<Integer> numbers) { if (n == numbers.size()) { for (Integer integer : list) { System.out.print(integer+", "); } System.out.println("********************"); list.removeAll(list); System.out.println(); } else { for (int i = n; i < numbers.size(); i++) { if (i == numbers.size() – […]

获得最大总和的子matrix?

input :具有正和负元素的二维arraysNxN – matrix。 输出 :任何大小的子matrix,其总和在所有可能的子matrix中是最大的。 要求 :algorithm复杂度为O(N ^ 3) 历史:在algorithm学家Larry的帮助下,对Kadane的algorithm进行了修改,我设法解决了这个问题的一部分 ,这个问题只是决定了总和 – 在Java下面。 感谢Ernesto设法解决剩下的问题,即确定matrix的边界,即左下angular,右下angular(在Ruby中)。

泡沫sorting家庭作业

在课堂上,我们正在做sortingalgorithm,尽pipe我在谈论这些algorithm和编写伪代码的时候很好理解,但是在为它们编写实际的代码时遇到了问题。 这是我在Python中的尝试: mylist = [12, 5, 13, 8, 9, 65] def bubble(badList): length = len(badList) – 1 unsorted = True while unsorted: for element in range(0,length): unsorted = False if badList[element] > badList[element + 1]: hold = badList[element + 1] badList[element + 1] = badList[element] badList[element] = hold print badList else: unsorted = True print […]

得到一个数字的所有因数最好的办法是什么?

这是非常愚蠢的方式: def divisorGenerator(n): for i in xrange(1,n/2+1): if n%i == 0: yield i yield n 我想得到的结果是类似于这个,但我想要一个更聪明的algorithm(这一个是太慢,愚蠢的:-) 我可以快速find主要因素和多样性。 我有一个生成器,以这种方式生成的因素: (factor1,multiplicity1) (因子2,重数2) (factor3,multiplicity3) 等等… 即输出 for i in factorGenerator(100): print i 是: (2, 2) (5, 2) 我不知道这对于我想要做的事有多大用处(我把它编码为其他问题),无论如何,我想要一个更聪明的方法 for i in divisorGen(100): print i 输出这个: 1 2 4 5 10 20 25 50 100 更新:非常感谢格雷格Hewgill和他的“聪明的方式”:)计算1亿的所有因数花了0.01s与他的方式反对39愚蠢的方式在我的机器上,非常酷:D 更新2:停止说这是这个职位的重复。 计算给定数字的除数不需要计算所有除数。 这是一个不同的问题,如果你认为它不是那么在维基百科上寻找“除数函数”。 […]