读书笔记-数论

离散数学之数论

翻了翻课本,看到数论一章有一个问题:20!的二进制表示从最低位数起有多少个连续的 0 。
课本上直接求 1到20的数 含有因子2的个数和,求出来是 18. 各种不理解,然后百度。看到了《编程之美》一书有同样的问题。
以下内容部分摘自: 大神的读书笔记

有两个问题,用到的方法类似

(1)给定一个整数N,那么N的阶乘N!末尾有多少个0?比如:N=10,N!=3628800,N!的末尾有2个0。
(2)求N!的二进制表示中最低位为1的位置。(这个的意思就是求出多少个连续的0 加一 就是位置)

主要分析第二个问题。当时很不理解 为什么要求7!的质因数分解后 2 的个数。
奇数的二进制表示末尾都是 1,奇数*奇数=奇数。我们可以这样想,1-7的奇数全部相乘,再乘偶数,每乘一个偶数,就会多k(取决质因子2的个数)个0 对 7! 进行质因数分解就可以了。
书上也用到了一个很巧妙的方法:

N!中含有质因数2的个数等于:[N/2]+[N/4]+[N/8]+…

自行理解~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值