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;
        }

      

  • 相关阅读:
    centos 编程环境
    git 安装 使用
    nodejs 笔记
    微信开发
    composer 使用笔记
    一:安装centos 7最小编程环境 xfce桌面
    二: 安装centos服务环境软件mysql httpd php
    我的通用程序规范及说明
    常用js代码集
    三 , lnmp 一键包安装使用
  • 原文地址:https://www.cnblogs.com/maydow/p/4839251.html
Copyright © 2011-2022 走看看