码迷,mamicode.com
首页 > 其他好文 > 详细

容斥定理

时间:2015-03-13 23:36:49      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:

 

技术分享

即如1~100 中有多少个 2的因子?

有些数字是1个该因子。有些数字有2个 有些数字有3个。

这就好比产生了重叠。

那么该怎么数呢?

 

                                           1 1       1 

        1 2 2 1 1 2        ->     1 1 1 1 1 1   把2认为是2个1层叠在一起。然后你可以先数掉第一层。  就剩下 1 1     1 然后再数这一层即可。

也就是说先解决 1~100 中有多少个 能被2整除的数。再解决 1~100 种有多少个能被2^4整除的数。。。。这些数之和就是2的因子的个数。

那么就是解决一个问题。 1~100种有多少个能被某个数 整除的数。

逆向思维。看看有什么数能被2给整除

2*1 2*2 2*3 2*4 2*5 2*6.....

你会发现也就是 n*m<=100  m的值就是了。也就是说m = [100/n].  []  是取整的意思。
所以该问题也就引刃而解了。

思考:

ex: 所有小于 100 的正整数中  有因子2 或3 的数的个数 ?

ex: 分母是1001的最简分数一共有多少个?  (提示:1001=7×11×13)

容斥定理

标签:

原文地址:http://www.cnblogs.com/Milkor/p/4336161.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!