欢迎来到高考01网!

教育解读导航:
  • 职业培训
  • 学历
  • 数学应用
  • 学习方法
  • 语文探索
  • 当前位置:首页 教育解读 数学应用 不合法的二进制数是什么

    不合法的二进制数是什么

    面试李组长所有文章
    面试李组长
    已认证
    每一次挫折都是一块磨石,它能将你雕琢得更坚韧、更勇敢。勇敢面对困难,你会发现,它们其实是你生命中不可或缺的宝贵财富。

    不合法的二进制数是指在其二进制表示中包含连续两个11的数。例如,二进制数`110`、`111`和`1011`都是不合法的,因为它们分别包含子串`11`。

    示例说明

    不合法的二进制数是什么

    合法二进制数:`1010`(不包含连续11)、`1001`(不包含连续11)

    非法二进制数:`110`(包含`11`)、`111`(包含`11`)、`1011`(包含`11`)

    计算不合法二进制数的数量

    给定n位二进制数,要求其中不包含连续两个11的数的数量,结果需对$10^9+7$取余。该问题可以通过动态规划解决:

    定义状态

    - `dp[i]`:表示长度为i且以0结尾的不合法二进制数数量

    - `dp[i]`:表示长度为i且以1结尾的不合法二进制数数量

    状态转移方程

    - `dp[i] = dp[i-1] + dp[i-1]`(在合法结尾0或1后添加0均合法)

    - `dp[i] = dp[i-1]`(仅在合法结尾0后添加1合法,避免连续两个1)

    不合法的二进制数是什么

    初始条件

    - `dp = 1`(`0`是合法)

    - `dp = 1`(`1`是合法)

    最终结果

    - 总不合法数 = `dp[n] + dp[n]`,取模$10^9+7$

    示例计算(n=3)

    `dp = 2`(`00`, `01`)

    `dp = 1`(`10`)

    `dp = 3`(`000`, `001`, `010`)

    `dp = 2`(`100`, `101`)

    不合法的二进制数是什么

    总不合法数 = `3 + 2 = 5`(对应`011`, `110`, `111`)

    注意事项

    该算法的时间复杂度为O(n),适用于n≤100的情况

    结果需对$10^9+7$取余,防止整数溢出

    本文【不合法的二进制数是什么】由作者 面试李组长 提供。 该文观点仅代表作者本人, 高考01网 信息发布平台,仅提供信息存储空间服务, 若存在侵权问题,请及时联系管理员或作者进行删除。
    数学应用相关资讯