zoukankan      html  css  js  c++  java
  • 具体数学-第1课(递归求解实际问题)

    原文链接:

    具体数学-第1课 - WeiYang Blog

    这学期提前选修了研究生的课程:具体数学、人工智能前沿、NLP讨论班,就随便记记具体数学每一节课所学的东西吧。

    第一节课讲的都是一些很简单的东西,这里就一带而过了。

    汉诺塔问题

    这是个老生常谈的问题了,n个盘子,3个柱子的汉诺塔问题,最少移动次数记为 (T(n))
    那么 [T(n)=2T(n-1)+1]
    边界条件为 (T(0)=0)
    解出 [T(n)=2^n-1]
    验证可以采用数学归纳法,这里就不多说了。

    直线分割平面问题

    这也是个高中问题了,n条直线最多分割平面为几部分,记为 (L(n))
    那么 [L(n)=L(n-1)+n]
    边界条件为 (L(0)=1)
    解出 [L(n)=n(n+1)/2+1]

    这题有个扩展,n个V型最多分割平面为几部分?
    解决思路如下:

    v2-2790750152e841f77112a64ee0af64af_b.jpg

    如上图所示,将V型补全(红色虚线部分),那么就转化为了 (2n) 条直线划分平面数,那么n个V型划分数只要减去 (2n) 就行了,所以答案为:
    [Z(n)=L(2n)-2n=2n^2-n+1]

    约瑟夫环问题

    这个问题暴力求解的话模拟就行了,复杂度是 (O(n^2)) 的,这里探索一种直接求解的方法。
    分两种情况讨论:
    当有 (2n) 个人时,踢掉 (n) 个人之后,情况如下图所示

    v2-6280aad05d12942bd00ae5d39d47b10d_b.jpg

    观察对应关系可以得出
    [J(2n)=2J(n)-1]
    同理,当有 (2n+1) 个人时,踢掉 (n+1) 个人之后,情况如下图所示

    v2-cbe8fe2fd9ba7e4daf634534af2ec1d4_b.jpg

    观察对应关系可以得出
    [J(2n+1)=2J(n)+1]
    边界条件为
    [J(1)=1]
    这个递推式很难求解,但是枚举出前面几项可以发现,如果令 (n=2^m+l) ,其中 (2^m) 是小于等于 (n) 的最大2的幂,那么
    [J(n)=2l+1]
    正确性可以通过数学归纳法求证。

    第一节课就讲了这么多,约瑟夫环还有很多问题值得探讨,下节课继续。。。

  • 相关阅读:
    【原创】贴片电容的测量方法。。。这是我从自己QQ空间转过来的,本人实操!
    CentOS6.4安装Apache+MySQL+PHP
    第一次在博客园写博客。。。新人
    C# 简单生成双色球代码
    从客户端中检测到有潜在危险的 Request.Form 值 方法
    经典实例
    js鼠标键禁用功能
    逻辑思维题
    C#运算符笔记
    C#基础
  • 原文地址:https://www.cnblogs.com/godweiyang/p/12203935.html
Copyright © 2011-2022 走看看