zoukankan      html  css  js  c++  java
  • 容斥定理

    即如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)

  • 相关阅读:
    108.将有序数组转换成二叉搜索树
    剑指Offer 09.用两个栈实现队列
    215.数组中的第K个最大元素
    AcWing 845.八数码
    1.两数之和
    迷宫问题
    倒计时
    Redis 红包
    Redis
    EF Api 全套
  • 原文地址:https://www.cnblogs.com/Milkor/p/4336161.html
Copyright © 2011-2022 走看看