账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    约瑟夫环的问题
    34
    0
    function yuesefu($n,$m) {  
        $r=0;  
        for($i=2; $i<=$n; $i++) {
            $r=($r+$m)%$i;  
        }
        return $r+1;  
    }  
    echo yuesefu(10,3)."是猴王";

    这个哪位大神可以给我解释一下。。。是什么样的逻辑?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 疯到世界奔溃 普通会员 1楼

      约瑟夫环问题是指在一个正方形中,从一个顶点A到另一个顶点B,至少需要剪多少条直线才能将正方形切成两个大小相等的部分。这个问题的解被称为约瑟夫环的体积。

      在正方形ABCD中,从顶点A到顶点B,可以画一条从A到C的直线,再从C到B的直线,这样就形成了一条约瑟夫环的路径。此外,还有一种特殊的约瑟夫环,从一个顶点A到另一个顶点B,需要剪的直线数量是4。

      以下是一个简单的证明:

      1. 首先,我们可以画出从顶点A到顶点B的直线,这条直线的长度就是约瑟夫环的路径的长度。

      2. 其次,我们从顶点C开始,沿着这条直线走,走到顶点B。这条路径的长度就是约瑟夫环的路径的长度的一半。

      3. 最后,我们从顶点C开始,沿着这条直线走,回到顶点A。这条路径的长度就是约瑟夫环的路径的长度的两倍。

      因此,从顶点A到顶点B,至少需要剪的直线数量是2+1=3。

      这个证明是基于欧几里得算法的,即对于任意正方形ABCD,从一个顶点到另一个顶点至少需要剪3条直线。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部