Questions tagged «algorithm»

算法是定义明确的问题解决方案的一系列明确定义的步骤。当您的问题与算法设计有关时,请使用此标签。




9
这个游戏背后的数学/计算原理是什么?
我的孩子有一个有趣的游戏,名为Spot It!游戏约束(据我所描述)是: 它是一副55张卡片 每张卡上有8张独特的图片(即一张卡上不能有2张相同的图片) 给定从套牌中选择的任意两张卡,则只有1张,只有1张匹配的图片。 匹配的图片在不同的卡上可能会有不同的缩放比例,但这只是使游戏变得更困难(即,一棵小树仍然匹配一棵大树) 游戏的原理是:翻转2张牌,谁先选择匹配的图片就可以得到一个点。 这是用于澄清的图片: (示例:您可以从上方的底部两张卡片中看到匹配的图片是绿色恐龙。在右下和右中图片之间是一个小丑的头。) 我试图了解以下内容: 满足这些标准所需的最少不同图片数量是多少,您将如何确定? 使用伪代码(或Ruby),如何从N张图片的阵列中生成55张游戏卡(其中N是问题1中的最小数量)? 更新: 每个甲板上确实发生了两次以上的图片(与某些推测相反)。看到这张3张卡片的图片,每张卡片都有一个闪电:


30
隐藏垃圾邮件机器人电子邮件的有效方法
在我的主页上,我正在使用这种方法来隐藏垃圾邮件机器人的电子邮件: <a href="admin [at] example.com" rel="nofollow" onclick="this.href='mailto:' + 'admin' + '@' + 'example.com'">Contact me</a> 你怎么看待这件事?有效吗 您还知道或使用其他哪些方法?
195 html  algorithm  email  spam 


17
如何使四舍五入的百分比加起来等于100%
考虑以下四个百分比,以float数字表示: 13.626332% 47.989636% 9.596008% 28.788024% ----------- 100.000000% 我需要将这些百分比表示为整数。如果仅使用Math.round(),我最终将占101%。 14 + 48 + 10 + 29 = 101 如果使用parseInt(),我最终将获得97%的收益。 13 + 47 + 9 + 28 = 97 有什么好的算法可以将任意数量的百分比表示为整数,而总数量仍保持100%? 编辑:阅读了一些评论和答案后,显然有很多方法可以解决此问题。 在我看来,为了忠于数字,“正确”的结果是使总误差最小化,该误差由相对于实际值的误差舍入将定义多少来定义: value rounded error decision ---------------------------------------------------- 13.626332 14 2.7% round up (14) 47.989636 48 0.0% round up (48) 9.596008 10 4.0% …

30
如何在任何二叉树中找到两个节点的最低公共祖先?
这里的二叉树不一定是二叉搜索树。 该结构可以视为- struct node { int data; struct node *left; struct node *right; }; 我可以和一个朋友一起解决的最大解决方案就是这种情况- 考虑这个二叉树: 有序遍历收益-8,4,9,2,5,5,1,6,3,7 后订单遍历收益-8、9、4、5、2、6、7、3、1 因此,例如,如果我们要找到节点8和5的公共祖先,那么我们将列出在有序树遍历中8到5之间的所有节点的列表,在这种情况下碰巧是[4,9 ,2]。然后,我们检查此列表中的哪个节点在后遍历中最后出现,即2。因此,8和5的共同祖先是2。 我认为该算法的复杂度为O(n)(对于有序/后序遍历为O(n),其余步骤又为O(n),因为它们仅是数组中的简单迭代)。但是很有可能这是错误的。:-) 但这是一种非常粗糙的方法,我不确定在某些情况下它是否会崩溃。是否还有其他(可能是最佳的)解决方案?

11
两个列表之间的组合?
已经有一段时间了,我无法将自己的头围绕着我尝试制定的算法。基本上,我有两个列表,并且想要获得两个列表的所有组合。 我可能没有解释正确,所以这里有个例子。 name = 'a', 'b' number = 1, 2 在这种情况下的输出将是: 1. A1 B2 2. B1 A2 棘手的部分是,“名称”变量中的项目可能比“数字”变量中的项目更多(数字将始终等于或小于名称变量)。 我很困惑如何进行所有组合(是否嵌套到循环?),甚至在名称中的项目比数字列表中的项目多的情况下,对于将名称变量中的项目进行移位的逻辑更加困惑。 我不是最好的程序员,但是如果有人可以帮助我阐明实现这一目标的逻辑/算法,我想可以试一试。所以我只是停留在嵌套的循环上。 更新: 这是带有3个变量和2个数字的输出: name = 'a', 'b', 'c' number = 1, 2 输出: 1. A1 B2 2. B1 A2 3. A1 C2 4. C1 A2 5. B1 C2 6. C1 B2

30
给定一个数字数组,返回所有其他数字的乘积数组(无除法)
在工作面试中有人问我这个问题,我想知道其他人会如何解决。我对Java最满意,但是欢迎使用其他语言的解决方案。 给定一个数字数组nums,返回一个数字数组products,其中products[i]all的乘积nums[j], j != i。 Input : [1, 2, 3, 4, 5] Output: [(2*3*4*5), (1*3*4*5), (1*2*4*5), (1*2*3*5), (1*2*3*4)] = [120, 60, 40, 30, 24] 您必须在O(N)不使用除法的情况下进行此操作。
186 arrays  algorithm 

15
使用Java在原始数组中查找最大值/最小值
编写一个函数来确定数组中的最小/最大值很简单,例如: /** * * @param chars * @return the max value in the array of chars */ private static int maxValue(char[] chars) { int max = chars[0]; for (int ktr = 0; ktr < chars.length; ktr++) { if (chars[ktr] > max) { max = chars[ktr]; } } return max; } …

27
查找数的最大素数的算法
计算数字最大素数的最佳方法是什么? 我认为最有效的方法如下: 查找可以清楚地划分的最低质数 检查除法结果是否为质数 如果没有,找到下一个最低的 转到2。 我基于此假设,因为它更容易计算出小的素因数。这是对的吗?我还应该考虑其他什么方法? 编辑:我现在意识到,如果有两个以上素数在起作用,我的方法是徒劳的,因为当结果是另外两个素数的乘积时,步骤2失败了,因此需要递归算法。 再次编辑:现在我意识到它仍然可以工作,因为最后找到的质数必须是最高的质数,因此,对步骤2中非质数结果进行的任何进一步测试都将导致较小的质数。


11
计算趋势主题或标签的最佳方法是什么?
许多网站都提供一些统计信息,例如“过去24小时内最热门的主题”。例如,Topix.com在其“新闻趋势”部分显示了这一点。在这里,您可以看到提及次数增长最快的主题。 我也想为主题计算这样的“嗡嗡声”。我该怎么办?该算法应权衡始终不那么热门的主题。通常(几乎)没有人提及的主题应该是最热门的主题。 Google提供“热门趋势”,topix.com显示“热门主题”,fav.or.it显示“关键字趋势”-所有这些服务都有一个共同点:它们仅向您显示当前异常热门的即将到来的趋势。 诸如“小甜甜布兰妮”,“天气”或“巴黎希尔顿”之类的词不会出现在这些列表中,因为它们总是很热而且很频繁。本文称为“小甜甜布兰妮问题”。 我的问题:如何编码算法或使用现有算法来解决此问题?列出最近24小时内搜索过的关键字,该算法应为您显示10个(例如)最热门的关键字。 我知道,在以上文章中,提到了某种算法。我试图用PHP编写代码,但我认为它不会起作用。它只是找到了大多数,不是吗? 希望您能对我有所帮助(编码示例会很棒)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.