zoukankan      html  css  js  c++  java
  • 约瑟夫环之递归实现

      网上的递推方法实在是看不懂,只能用土办法-归纳总结。经过推算,假如不是从0开始会很麻烦。在归纳的时候发现有问题可以灵活一点。

      个数               数据                   最后一个退出的编号

        1                  0                            0                                   0

        2               0    1                         1                               (0+3)%2

        3             0   1    2                      1                                (1+3)%3

        4           0  1    2    3                   0                                (1+3)%4

            5        0   1   2     3    4               3                                (0+3)%5

      

           发现规律  :f(i)=(f(i-1)+k)%lenght                    怎么证明?小弟不会!!!!

       

        /**
         * 报数到第K个退出
         * 总共m个人
         * 第i个出局的人
         * @param m
         * @param k
         * @param i
         * @return
         */
        public static  int  recursionOfJosephCircle(int m,int k,int i)
        {
            if(m==1)
                return 0;
            else 
                return (recursionOfJosephCircle(m-1, k, i-1)+k)%m;
        }

      

  • 相关阅读:
    vue-router的push和replace的区别
    ajax请求常见状态码以及产生的原因
    vue定义data的三种方式与区别
    button与input button区别
    变量的声明方式
    js变量
    JavaScript的节流与防抖?
    js实现继承的方法-构造函数
    前端表单验证常用的15个JS正则表达式
    ES6中的新增数组的方法
  • 原文地址:https://www.cnblogs.com/maydow/p/4839251.html
Copyright © 2011-2022 走看看