当前位置: 首页 > wzjs >正文

法制建设网站百色住房和城乡建设部网站

法制建设网站,百色住房和城乡建设部网站,wordpress分页条目,厦门做网站哪家公司好在C中&#xff0c;除了使用<cmath>中的log或log2函数求对数&#xff0c;也可以通过递推求出所有可能用到的⌊log⁡2i⌋,i∈[1,n]\lfloor \log_2i\rfloor, i\in[1, n]⌊log2​i⌋,i∈[1,n] 证明&#xff1a;⌊log⁡2i⌋⌊log⁡2⌊i2⌋⌋1\lfloor \log_2i \rfloor\lfloor \…

在C++中,除了使用<cmath>中的loglog2函数求对数,也可以通过递推求出所有可能用到的⌊log⁡2i⌋,i∈[1,n]\lfloor \log_2i\rfloor, i\in[1, n]log2i,i[1,n]

证明:⌊log⁡2i⌋=⌊log⁡2⌊i2⌋⌋+1\lfloor \log_2i \rfloor=\lfloor \log_2 \lfloor \frac{i}{2} \rfloor \rfloor+1log2i=log22i⌋⌋+1
由于log⁡2i=log⁡2(i2⋅2)=log⁡2i2+log⁡22=log⁡2i2+1\log_2i=\log_2(\frac{i}{2}\cdot 2)=\log_2\frac{i}{2}+\log_22=\log_2\frac{i}{2}+1log2i=log2(2i2)=log22i+log22=log22i+1
等号两边都向下取整,得:
⌊log⁡2i⌋=⌊log⁡2i2⌋+1\lfloor \log_2i \rfloor =\lfloor \log_2\frac{i}{2} \rfloor+1log2i=log22i+1

  • 如果iii是偶数,则i2=⌊i2⌋\frac{i}{2}=\lfloor \frac{i}{2} \rfloor2i=2i,因此有
    ⌊log⁡2i⌋=⌊log⁡2i2⌋+1=⌊log⁡2⌊i2⌋⌋+1\lfloor \log_2i \rfloor =\lfloor \log_2\frac{i}{2} \rfloor+1 = \lfloor \log_2\lfloor \frac{i}{2} \rfloor \rfloor+1log2i=log22i+1=log22i⌋⌋+1
  • 如果iii是奇数,则i−12=⌊i2⌋\frac{i-1}{2}=\lfloor \frac{i}{2} \rfloor2i1=2i
    ⌊log⁡2i−12⌋=x\lfloor \log_2\frac{i-1}{2} \rfloor =xlog22i1=x
    那么x≤log⁡2i−12<x+1x\le \log_2\frac{i-1}{2}<x+1xlog22i1<x+1
    2x≤i−12<2x+12^x\le \frac{i-1}{2}<2^{x+1}2x2i1<2x+1
    由于i−12\frac{i-1}{2}2i1是整数,2x+12^{x+1}2x+1也是整数,较小的整数加上12\frac{1}{2}21后,一定小于较大的整数。
    因此有2x≤i−12<i−12+12=i2<2x+12^x\le \frac{i-1}{2}<\frac{i-1}{2}+\frac{1}{2}=\frac{i}{2}<2^{x+1}2x2i1<2i1+21=2i<2x+1
    所以x≤log⁡2i2<x+1x\le \log_2{\frac{i}{2}}<x+1xlog22i<x+1
    因此⌊log⁡2i2⌋=x=⌊log⁡2i−12⌋=⌊log⁡2⌊i2⌋⌋\lfloor \log_2{\frac{i}{2}} \rfloor =x= \lfloor \log_2\frac{i-1}{2} \rfloor= \lfloor \log_2\lfloor \frac{i}{2}\rfloor \rfloorlog22i=x=log22i1=log22i⌋⌋
    因此⌊log⁡2i⌋=⌊log⁡2i2⌋+1=⌊log⁡2⌊i2⌋⌋+1\lfloor \log_2i \rfloor =\lfloor \log_2\frac{i}{2} \rfloor+1 = \lfloor \log_2\lfloor \frac{i}{2} \rfloor \rfloor+1log2i=log22i+1=log22i⌋⌋+1
    证毕。

已知⌊log⁡21⌋=0\lfloor \log_21 \rfloor=0log21=0,结合递推式⌊log⁡2i⌋=⌊log⁡2⌊i2⌋⌋+1\lfloor \log_2i \rfloor=\lfloor \log_2 \lfloor \frac{i}{2} \rfloor \rfloor+1log2i=log22i⌋⌋+1即可递推得到所有可能用到的⌊log⁡2i⌋,i∈[1,n]\lfloor \log_2i\rfloor, i\in[1, n]log2i,i[1,n]

代码如下:

const int N = 1000005;//N设为n可能达到的最大值
int lg[N];//lg[i]:floor(log_2{i})
void initLg(int n)//生成lg[1]~lg[n]
{//全局变量初值为0,已经设好lg[1] = 0for(int i = 2; i <= n; ++i)lg[i] = lg[i/2]+1;
}

预处理lg数组的时间复杂度为O(n)O(n)O(n)

http://www.dtcms.com/wzjs/581314.html

相关文章:

  • 网站菜单分类怎么做的影视公司网站是做什么的
  • 如何设计旅游网站网站建设规范方法
  • wordpress 网站小模块英语网站源码
  • 建设网站要服务器个人简介ppt模板
  • 如何建设旅游网站网站上的咨询窗口是怎么做的
  • 哪种类型的网站比较难做中关村在线电脑网
  • 福州网站建设营销q479185700刷屏品牌建设工作总结
  • 棋牌网站代理网站开发电子商务
  • 网站怎么建设在哪里接单网页设计与网站建设试卷
  • 网站开发与建设做外贸一般在什么网站
  • 潇朋友免费班级网站建设系统怎么用网吧电脑做网站服务器吗
  • 360阻止建设银行网站计算机专业网站设计论文
  • 做网站app需要懂些什么软件网站建设具体详细过程
  • 网站一直百度上搜不到是怎么回事啊wordpress要求
  • 网站开发常见面试题网站开发费怎样入账
  • 关于网站建设的文章优化公司治理结构
  • 杭州做网点卖服装在那个网站四川建设行业数据共享平台
  • 轻松网站建设crm客户管理系统的功能有哪些
  • 中山模板网站建设服务器搭建vps教程
  • 做门窗安装去哪些网站找生意建设工程查询系统
  • 微信小程序一站式开发学校内部网站开发价格
  • 莆田仿站定制模板建站网站开发vue版本是什么
  • 小众写作网站天津网站页面设计
  • 公司网站建设知乎wordpress版 影视站
  • dw代码做网站制作一个网站多少钱
  • 移动网站趋势成华区微信网站建设公
  • 网站建设意义新品发布会ppt参考
  • 建设网站的价格是多少电子商务网站规划与建设摘要
  • 做网站办公室图片wordpress文章字符插件
  • 建设一个网站费用伍佰亿网站怎么做