Tag: algorithm

阶乘的数字之和

链接到原来的问题 这不是一个功课问题。 我只是以为有人可能知道这个问题的真正的解决scheme。 2004年我参加了一个编程比赛,出现了这个问题: 给定n,findn!的数字的总和。 n可以从0到10000.时间限制:1秒。 我认为每个testing集有多达100个数字。 我的解决scheme非常快但速度不够快,所以我只是让它运行一段时间。 它build立了一个预先计算的值的数组,我可以在我的代码中使用。 这是一个黑客,但它的工作。 但是有一个人用十行代码解决了这个问题,很快就会给出答案。 我相信这是某种dynamic规划,或者是数理论。 当时我们是16岁,所以不应该成为“火箭科学”。 有谁知道他可以使用什么样的algorithm? 编辑 :对不起,如果我没有明确的问题。 正如mquander所说,应该有一个聪明的解决scheme,没有bugnum,只有普通的Pascal代码,几个循环,O(n 2 )或类似的东西。 1秒不再是一个约束。 我在这里发现,如果n> 5,那么9除以阶乘的数字之和。 我们还可以find数字末尾有多less个零。 我们可以使用它吗? 好吧,来自俄罗斯的编程比赛的另一个问题。 给定1 <= N <= 2000000000,输出N! mod(N + 1)。 这有什么关系?

alignmentstringalgorithm

只是在求职面试中,我被要求用这个签名来实现一个function: function justify($str_in, $desired_length) 它需要模仿HTML的text-align:justify会做什么,这里有一些例子(desired_length = 48) hello world there ok then = hello …… world …… there ……..好的…….然后 你好……………………你好………………… 好吧然后=好…………………………………..然后 这个string几乎肯定比48长,我认为= this.string.is.almost.certainly.longer.than.48。 两个字=两个…………………………………单词 三个好词=三……………..好………………词 1 2 3 4 5 6 7 8 9 = 1 …. 2 …. 3 ….. 4 ….. 5 ….. 6 ….. 7 ….. 8 ….. 9 (我用句点replace了空格来说明) 单词之间的空格长度可能永远不会相差一个以上。 我已经写了一个PHP解决scheme,但我更感兴趣的是人们可以想出什么algorithm来解决这个问题。 […]

algorithm挑战:从图像生成颜色scheme

背景 所以,我正在研究一个Web应用程序的新的迭代。 而且,我们发现我们的用户痴迷于懒惰。 真的很懒。 事实上,我们为他们做的工作越多,他们就越喜欢这项服务。 现有应用程序的一部分需要用户select要使用的配色scheme。 但是,我们有一个图片(用户网站的截图),为什么我们不能满足他们的懒惰,为他们做呢? 答:我们可以,这将是一个有趣的编程练习! 🙂 挑战 给定一个图像,你如何创build一个相应的配色scheme? 换句话说,如何select图像中的主要X颜色(其中X由Web应用程序定义)。 在我们的特定情况下使用的图像是用户的网站截图,以全分辨率(例如1280×1024)。 ( 注意:请简单描述你的algorithm – 不需要发布实际的伪代码) 奖励积分(街道积分,不是实际的积分)为: 描述一个简单而有效的algorithm。 代码是我们如何创造 – 保持简单和美丽。 允许用户根据“多彩”,“明亮”,“静音”,“深”等各种“情绪”来调整配色scheme(a la Kuler ) 描述一种可靠地确定网站截图中使用的主要文本颜色的方法(可能需要它自己的,单独的algorithm)。 灵感 有几个现有的网站执行类似的function。 随意检查一下,问自己:“我怎么复制这个?我怎么能改进它? http://www.pictaculous.com/ http://www.cssdrive.com/imagepalette/index.php http://kuler.adobe.com/#create/fromanimage

回溯和深度优先search有什么区别?

回溯和深度优先search有什么区别?

什么是目前最安全的单向encryptionalgorithm?

众所周知,单向encryption是对数据库中的用户密码进行encryption的一种便捷方式。 这样,即使数据库的pipe理员也不能知道用户的密码,但必须进行密码猜测,使用相同的algorithm对其进行encryption,然后将结果与数据库中的encryption密码进行比较。 这意味着确定密码的过程需要大量的猜测和大量的处理能力。 看到计算机正在变得越来越快,math家仍在开发这些algorithm,我想知道考虑到现代计算能力和encryption技术,哪一个是最安全的。 我一直使用MD5已经有几年了,现在我想知道是否还有更多我应该做的事情。 我应该考虑一个不同的algorithm? 另一个相关的问题:一个字段通常需要多长时间才能获得这样的encryption密码? 我必须承认,我几乎不知道encryption,但我假设一个MD5散列(作为例子)可能会更长,并可能需要更多的处理能力来破解。 或者,字段的长度根本不重要,只要encryption的密码适合于它呢?

语音令人难忘的密码生成algorithm

背景 那天在健身房的时候,我正在用我的组合锁,并且认识到一些对我来说是个有用的程序员。 换句话说,我的组合是三个独立的数字组合,或者是相似的,或者是有其他的关系使得它们易于记忆。 例如,5-15-25,7-17-2,6-24-5。 这些例子似乎很容易记住。 题 我将如何执行类似的密码? 是的,他们应该很难破解,但最终用户也应该很容易记住。 组合锁可以用混合的数字混合在一起,这些数字具有相似的声音,并且具有相似属性的数字(7-17-23:全部素数,7在7之后滚动,23是另一个素数,并且是那套),“难”记得)。 标准 密码应该很容易记住。 Dog!Wolf很容易记住,但一旦攻击者知道你的网站给出了这种组合,这使得检查变得容易得多。 文字或字母大多应遵循相同的声音(大部分)。 至less8个字母 不使用!@#$%^&*();'{}_+<>?,./这些标点符号适用于'硬'密码,没有'易记'的声音。 资源 这个问题是语言不可知的,但是如果C#有一个特定的实现,我很乐意听到它。 更新 有less数用户表示“这是不好的密码安全性”。 不要以为这是一个网站。 这可能只是为了让我自己根据这些规则生成密码的应用程序。 这是一个例子。 字母A – C – C – L – I – M – O – P 'stream',恰好是两个常用字( Acclimate和Mop )组合在一起。 此外,当用户说这些字母,或者说他们是一个字,这是他们的一个真正的字。 很容易记住,但很难破解(显然,字典攻击)。 这个问题有两个部分的目标: 从听起来类似的字母构造密码(使用一致性)或 构造与普通单词相关的密码,类似于生成不在字典中的第三组字母。

如何估算剩余(准确)的下载时间?

当然你可以用当前的下载速度来分割剩余的文件大小,但是如果你的下载速度波动(这将会),这不会产生一个很好的结果。 什么是更顺畅的倒计时algorithm?

插入sorting与气泡sortingalgorithm

我想了解一些sortingalgorithm,但我很努力看到气泡sorting和插入sortingalgorithm的区别。 我知道两者都是O(n 2 ),但在我看来,冒泡sorting只是将数组的最大值冒泡到每个传递的顶部,而插入sorting只是将最低值沉入每个传递的底部。 他们是不是在做同样的事情,但方向不一样? 对于插入sorting,比较/潜在互换的次数从零开始并且每次增加(即,0,1,2,3,4,…,n),但是对于气泡sorting,这种相同的行为发生,但是在sorting(即n,n-1,n-2,… 0),因为冒泡sorting不再需要与sorting后的最后一个元素进行比较。 尽pipe如此,插入sorting总体来说似乎是一个共识。 谁能告诉我为什么? 编辑: 我主要关心algorithm如何工作的差异,而不是他们的效率或渐近的复杂性。

面试问题 – 在sorting数组X中search索引i,使得X = i

昨天我在采访中被问及以下问题: 考虑一个Java或C ++数组,说X是sorting的,它里面没有两个元素是相同的。 如何能find一个最好的指数说, i这样的指数的元素也是i 。 那就是X[i] = i 。 作为澄清,她也给了我一个例子: Array X : -3 -1 0 3 5 7 index : 0 1 2 3 4 5 Answer is 3 as X[3] = 3. 我能想到的最好的是线性search。 面试后,我虽然很多这个问题,但找不到更好的解决scheme。 我的观点是:具有所需属性的元素可以在数组中的任何位置。 所以它也可能在数组的最后,所以我们需要检查每个元素。 我只想在这里向社区确认我是对的。 请告诉我我是对的:) 谢谢

多项式时间和指数时间

我有一个关于多项式时间algorithm,非多项式时间algorithm和指数时间algorithm之间的区别的问题,例如,如果一个algorithm将花费O(n ^ 2)时间,那么它将处于哪个类别?