问题
因为这个问题要求连续的数字,所以“暴力”在这种情况下意味着O(n),n是数字的数量(1000)。只要数字中没有某种模式,你就需要n步来扫描这个数字,所以这是最快的解决方案。
你可以缓存最后4位数的乘积或做类似的技巧,但你肯定不会比O(n)更好。
这个问题参考了欧拉项目问题5,所以要小心剧透!问题5: 2520是可以被1到10的每个数字除的最小数,没有任何余数。可以被1到20的所有数字整除的最小正数是多少? 我用Ruby编写了以下代码作为问题5的解决方案。 然而,每当我运行脚本时,它都会挂起。请注意,我在1到10范围内的基本情况2520上测试了相同的方法,效果很好。 为什么它适用于更简单的情况,但不适用于更高级的情况?我能做些什么来修复我所
我首先使用蛮力解决了这个问题,如下面的代码所示。 我认为这种方法是低效的,因为它运行算法的次数明显超过了必要的次数。任何一个数,如果是前一个数的Collatz序列的一部分,实际上已经确定了它的序列,所以你最终要计算每一个数的序列,每次它出现在Collatz序列中。 我决定最好把每个数字一出现在一个Collatz序列中就存储在一个地图中,这样你只需要计算一次。为此,我使用了一个TreeMap,其中数
13195的主要因子为5、7、13和29。数字600851475143中最大的素因子是什么? 我用自己的方式在Euler项目上解决了这个问题,速度很慢,然后我在某人的github帐户上找到了这个解决方案。我不明白为什么它会起作用。为什么删除了许多因子,这些因子等于一个指数?有什么见解吗?
我有一组任意的项目(下面的点),一些数量的类别以任意的方式重叠(下面的A-C)。测试的目的是确定是否有可能将每一个项目分配到一个单独的类别中,在它已经属于的类别中,这样每个类别结束时至少有一定数量的项目。 例如,我们可能要求A、B和C可以各自要求一个项目。如果我们给出了下面所有的4个点,那么证明这是可能的就很容易了:只需将所有的项目贴在一个列表中,循环遍历类别,并让每个类别移除一个它也可以访问的项
我试图找到最有效的方法来计算32位无符号整数的模255。我的主要关注点是找到一种在x86和ARM平台上运行良好的算法,并着眼于除此之外的适用性。首先,我试图避免内存操作(这可能很昂贵),因此我在避免表的同时寻找位细微的方法。我还试图避免潜在的昂贵操作,例如分支和乘法,并尽量减少使用的操作和寄存器的数量。 下面的ISO-C99代码捕获了我迄今为止尝试的八种变体。它包括一个用于穷举测试的框架。我附加了
这个问题可能没有具体说明,但我认为很重要。当您想要解决一个优化问题而又不太熟悉方法时,首先想到的是它。 我可以举一些简单的例子: 获取列表的min元素(非常简单) 列出集合的所有置换 列出集合的所有子集 这些问题都有成熟的解决方法。但也有问题不是很清楚: 列出两个字符串的所有(我指的不是编辑操作中最短的一个) 列出两个序列的所有 列出括号的所有可能性 我不知道用蛮力法解决这些问题。我的问题是: 是