hamming-numbers相关内容
我正在解决一个问题,该问题要求使用素数 2、3 和 5 生成一个序列,然后显示序列中的第 n 个数字.所以,如果我让程序显示第 1000 个数字,它应该显示它. 我不能使用数组或类似的东西,只能使用基本的决策和循环. 我开始研究它并碰壁......这就是我得到的: #include 使用命名空间标准;int main() {无符号整数 n=23;for(int i
..
(这太令人兴奋了!)我知道,这个主题是众所周知的.用于有效生成无限递增的汉明数序列,没有重复和遗漏的最新技术(在 Haskell 以及其他语言中)长期以来一直如下(AFAIK - 顺便说一句,它相当于 原始 Edsger Dijkstra 代码): hamm :: [整数]hamm = 1 : map (2*) hamm `union` map (3*) hamm `union` map (5*
..
质因数只有 2、3 或 5 的数称为丑数. 示例: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, ... 1 可以认为是 2^0. 我正在寻找第 nth 个丑陋的数字.请注意,随着 n 变大,这些数字的分布极其稀疏. 我写了一个简单的程序来计算给定的数字是否丑陋.对于 n >500 - 它变得超级慢.我尝试使用备忘录 - 观察:ugly_number
..
这是第 10 亿个丑数/汉明数吗? 62565096724471903888424537973014890491686968126921250076541212862080934425144389766922226677347431081653485460095483712495354659972306418413105490778300791084270852049798907834304
..
我正在尝试生成所有可以用
..
我正在研究一个问题,该问题要求使用质数2、3和5生成一个序列,然后在序列中显示第n个数字.因此,如果我要求程序显示第1000个数字,则应该显示它. 我不能使用数组或类似的东西,而只能使用基本的决策和循环. 我开始研究它并撞到墙...这就是我得到的: #include使用命名空间std;int main(){无符号整数n = 23;for(int i = 2;
..
仅主因子为2、3或5的数字称为丑陋的数字. 示例: 1,2,3,4,5,6,8,9,10,12,15,... 1可以视为2 ^ 0. 我正在寻找第n 个丑陋的数字.请注意,随着 n 变大,这些数字的分布极为稀疏. 我写了一个琐碎的程序,计算给定数字是否丑陋.对于 n>500 -变得超级慢.我尝试使用记忆-观察: ugly_number * 2 , ugly_number
..
我在哈斯克尔(Haskell)中生成汉明数字的过程中,试图改进明显的(请为功能命名) mergeUniq :: Ord a => [a] -> [a] -> [a] mergeUniq (x:xs) (y:ys) = case x `compare` y of EQ -> x : mergeUniq xs ys
..
考虑有限集{2,3,5,...,n}。我对素数感兴趣,但这个问题可能适用于任何一组数字。我想找到这些数字升序的所有可能乘积,尤其是大于或等于某个数字x的乘积。有谁知道一个不错的算法吗? 编辑来澄清一下: 输入集中的每个因子都可能可以使用多次。如果输入为{2,3,5,7},则输出为{2,3,4,5,6,7,8,9,10,12,14,15,16,18,...} 。该算法只要产生的结果大于或
..
免责声明:对此有很多疑问,但是我没有找到任何需要恒定内存的东西。 汉明数字是一个 2 ^ i * 3 ^ j * 5 ^ k ,其中i,j,k是自然数。 是否有可能生成具有O(N)时间和O(1)(恒定)内存的第N个汉明数?在生成下,我的意思是生成器,即您只能输出结果而不能读取先前生成的数字(在这种情况下,内存将不是恒定的)。但是,您可以保存一定数量的常量。 例如,基于优先级,我看
..
可能的重复项: 第n个丑陋的数字 找到表示表达式的第K个最小数字(2 ^ x)*(3 ^ y)*(5 ^ z) 我想知道如何快速而优雅地解决此问题: 我们定义每个数字 n 为“丑陋",其形式为:2 ^ x * 3 ^ y * 5 ^ z ;,其中x,y和z是自然数.找到第1500个丑陋的数字. 例如第一个“丑陋"的数字是: 1, 2, 3, 4, 5, 6, 8, 9,
..
常规数字是均分60的幂的数字.例如,60 2 = 3600 = 48×75,因此48和75都是60的幂的因数.因此,它们也是正数. 这是的扩展,向上取整为2的下一个幂. 我有一个整数值 N ,它可能包含大素数,我想将其四舍五入为仅包含小素数(2、3和5)的数字 示例: f(18) == 18 == 21 * 32 f(19) == 20 == 22 * 51 f(257
..
显示第一个 N 个自然数,其除数仅为2、3和7. 我写了类似的东西.我是Lisp的初学者.谢谢! defvar x 1 (defun numbers(n) if(mod x 2 ) (loop for x from 1 to n do(print x) ) ) print(numbers()) 解决方案 由于我刚刚花了一些时间,所以可以看看一下.可能不是
..
我在SICP中基本坚持3.56.问题是这样的: 锻炼3.56.由R. Hamming提出的一个著名问题是,以升序(无重复)枚举除2、3或5以外没有素数的所有正整数.一种显而易见的方法是简单地测试每个整数依次查看是否有2、3和5以外的任何其他因素.但这效率很低,因为随着整数变大,越来越少的整数符合要求.或者,让我们调用所需的数字流S,并注意以下有关事实. S以1开头. (比例流S 2)
..
(这很令人兴奋!)我知道,题材是众所周知的。最先进的技术(在Haskell以及其他语言中)用于高效生成无限增加的汉明数字序列,无重复和无遗漏,长期以来一直如下(AFAIK - 顺便说一句,它相当于 original Edsger Dijkstra's code ) : hamm :: [Integer] hamm = 1:map(2 *)hamm`union` map 3 *)hamm
..
我正在玩Python 3的功能性能力,并试图实现用于计算汉明数字的经典算法。这是只有2,3或5个主要因素的数字。第一个汉明数字是2,3,4,5,6,8,10,12,15,16,18,20等等。 我的实现如下: $ p $ def scale(s,m): return(x * m for x in s) def merge(s1,s2): it1,it2 = iter(s1),
..
在EX pression 2 X * 3 是 * 5 以Z 在 X ,是和以Z 可以非负整数值(> = 0)。 所以,函数将生成一个序列号 1,2,3,4,5,6,8,9,10,12,15,16的...... 在我有一个蛮力解决方案。 我将基本上遍历在循环中以1开始,在每个迭代我会发现如果当前数目的因素是只从该组2,3或5 我想有是一个优雅的算法。 这是一个面试问题。 解决方案
..
我的一个朋友正在找工作面试的。其中一个面试问题让我思考,只是想一些反馈。 有2个非负整数:i和j。给出下面的等式,找到一个(最佳)溶液来迭代i和j在这样一种方式,输出的排序 2 ^ I * 5 ^Ĵ 所以前几轮应该是这样的: 2 ^ 0 * 5 ^ 0 = 1 2 ^ 1 * 5 ^ 0 = 2 2 ^ 2 * 5 ^ 0 = 4 2 ^ 0 * 5 ^ 1 = 5 2 ^ 3
..
我有一组素数的和我只用那些主要因素在增加,以生成一个整数。 例如,如果设定的是的 P = {2,5},则我的整数应为1,2,4,5,8,10,16,20,25,... 有没有什么有效的算法来解决这个问题? 解决方案 其基本思想是,1为集的成员,并为设置的 N 的每个成员也是如此2 N 的和5的 N 的是一组的成员。这样,你就开始通过输出1,推动2和5到优先级队列。然后,反复弹出优先队列的前
..
号,其唯一的首要因素是2,3或5被称为难看号码。 例如: 1,2,3,4,5,6,8,9,10,12,15,... 1可以被认为是2 ^ 0 我正在寻找第n个丑数。请注意,这些数字是非常稀疏分布为n变大。 我写了一个计算,如果给定的数字是丑,不是一个简单的程序。对于n> 500 - 它成为超慢。我试着用记忆化 - 观察:ugly_number * 2,ugly_number * 3,ug
..