这个关于邮政炸弹的问题自然让我进入了维基百科的主题页面 。 本文提到了一个解压缩到1.3 EB的45.1 kb zip文件的例子。 什么是原则/技术将用于创build这样的文件呢? 我不想实际做到这一点,更多的是对所涉概念的简化的“如何作品”的解释感兴趣。 PS 这篇文章提到了9层的zip文件,所以这不是一个压缩一堆零的简单情况。 为什么9,为什么每个文件有10个?
这将被分类为“你好,世界!”O(1)algorithm。 ?? public class Hello1 { public static void Main() { DateTime TwentyYearsLater = new DateTime(2035,01,01); while ( DateTime.Now < TwentyYearsLater ) { System.Console.WriteLine("It's still not time to print the hello …"); } System.Console.WriteLine("Hello, World!"); } } 我正在考虑使用 DateTime TwentyYearsLater = new DateTime(2035,01,01); while ( DateTime.Now < TwentyYearsLater ) { // … } 代码片段作为一个忙碌的循环,当有人要求一个复杂的algorithm时,把它作为一个笑话。 这是正确的吗?
什么是一个好的algorithm来确定一个hang子手游戏的单词的“难度”,以便游戏可以select单词来匹配指定的难度级别? 难度似乎与所需的猜测次数有关,字母使用的相对频率(例如,带有许多罕见字母的单词可能难以猜测)以及潜在的单词长度。 还有一些主观因素(试图)补偿,比如一个单词在玩家词汇中的可能性,并且可以被识别,允许从仅基于字母频率的猜测策略转移到基于列表的猜测已知的匹配词。 我现在的尝试是在ruby下面。 有关如何改进分类的build议? def classify_word(w) n = w.chars.to_a.uniq.length # Num. unique chars in w if n < 5 and w.length > 4 return WordDifficulty::Easy end if n > w.length / 2 return WordDifficulty::Hard else return WordDifficulty::Medium end end 我正在写一个hang子手游戏,我希望我的孩子们玩; 我太老了,不能尝试“作业”,这可能是为什么问题是接受这么多的倒票…单词是从大字数据库中随机抽取的,其中包含许多难懂的单词,并且正在被难度级别过滤确定的话。
我正在开发一款能够自动修剪脚趾甲的机器的软件,以便用户可以简单地将它们放在脚上并运行,而不必通过咬或用指甲刀来手动操作。 我们的潜在用户群中有相当大的比例可能是犹太人,显然,有一个不按顺序修剪脚趾甲 ( 或指甲 )的传统 似乎对这个传统的确切应用有异议,但是我们认为以下规则足以容纳宗教习惯禁止切割脚趾甲的人: 没有两个相邻的脚趾甲应该连续切割 左脚的切割顺序与右脚的顺序不符 连续两次的切割顺序不能相同。 序列不容易预测,所以硬编码交替序列不起作用。 这就是我们如何决定脚趾的数字: 5 4 3 2 1 1 2 3 4 5 Left foot Right foot 我已经编写了代码来解决这个问题,但是使用的algorithm是次优的:事实上,最糟糕的情况是O(∞) 。 它的工作方式可以与bogosort相媲美。 这里是使用实际代码的伪代码简化: function GenerateRandomSequence sequence = Array[5] foreach (item in sequence) item = RandomNumberBetween(1,5) return sequence function GetToenailCuttingOrder while (true) sequence = GenerateRandomSequence() if (!AllItemsAreUnique(sequence)) continue if (NoTwoAdjacentItemsHaveConsecutiveNumbers(sequence)) […]
在序列情况下sorting需要O(n log n)。 如果我们有O(n)处理器,我们希望线性加速。 O(log n)并行algorithm存在,但它们具有很高的常数。 它们也不适用于在O(n)处理器附近没有任何地方的商品硬件。 对于p处理器,合理的algorithm应该花费O(n / p log n)时间。 在序列情况下,快速sorting平均具有最佳的运行时复杂性。 并行快速sortingalgorithm很容易实现(见这里和这里 )。 然而,由于第一步是将整个集合分割到单个内核上,因此性能不佳。 我已经find许多并行sortingalgorithm的信息,但到目前为止我还没有看到任何指向明确的赢家。 我正在寻找以8到32个核心运行的JVM语言sorting100万到1亿个元素的列表。
如果你有十亿个数字和一百台电脑,找出这些数字中位数的最好方法是什么? 我拥有的一个解决scheme是: 在电脑之间平均分配一套。 sorting他们。 find每个集合的中位数。 对中位数进行sorting。 从最低位到最高位中间一次合并两组。 如果我们有m1 < m2 < m3 …那么首先合并Set1和Set2并在结果集合中,我们可以丢弃所有低于Set12 (合并)的中值的Set12 。 所以在任何时候我们都有相同的尺寸。 顺便说一下,这不能以平行的方式完成。 有任何想法吗?
考虑下面的四个百分比,用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 什么是一个很好的algorithm来表示任何百分比的整数,同时仍然保持100%? 编辑 :阅读了一些评论和答案后,显然有很多方法可以解决这个问题。 在我看来,为了保持数字的真实性,“正确的”结果是最小化整体误差的结果,即由相对于实际值的误差舍入的多less来定义: 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% don't […]
input:给定包含从0到n-1的元素的n个元素的数组,其中任何这些数字出现任何次数。 目标:在O(n)中find这些重复的数字,并只使用恒定的内存空间。 例如,令n为7,数组为{1,2,3,1,3,0,6},答案应该是1&3.我在这里查了类似的问题,但答案使用了一些数据结构,如HashSet等 任何有效的algorithm相同?
我正在寻找一个非recursion深度searchalgorithm的非二叉树。 很感谢任何forms的帮助。
亚马逊推荐技术的屏幕背后有什么技术? 我相信亚马逊的推荐目前是市场上最好的,但是他们如何为我们提供这样的相关build议呢? 最近,我们已经参与了类似的推荐类项目,但是从技术的angular度来看,肯定会想知道亚马逊推荐技术的来龙去脉。 任何投入将不胜感激。 更新: 这个专利解释了如何完成个性化的build议,但这不是很技术性的,所以如果能够提供一些见解,这将是非常好的。 从戴夫的评论中, 亲和力分析构成了这种推荐引擎的基础。 这里还有一些关于主题的好消息 揭秘市场篮子分析 市场篮子分析 亲和性分析 推荐阅读: 数据挖掘:概念和技术