网站公告 | 这是第三条公告我的广告
微信扫一扫 分享朋友圈

已有 1299 人浏览分享

约瑟夫问题

[复制链接]
智趣岛刘奕辰老师
:3 天
:1 天

46

主题

9

回帖

9894万

积分

管理员

BOSS

Rank: 9Rank: 9Rank: 9

积分
98943941

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

发表于 2024-7-9 14:24:44 | 显示全部楼层 | 阅读模式
def josephus(n, m):
    # 初始化一个循环队列
    circle = [i for i in range(1, n+1)]
    # 用来追踪循环队列中的位置
    current_index = 0

    while len(circle) > 1:
        # 当前要出列的人员索引
        out_index = (current_index + m - 1) % len(circle)

        print(circle[out_index])
        # 将要出列的人员移除
        _ = circle.pop(out_index)
        # 更新当前索引位置
        current_index = out_index

    # 返回最后一个人员,即获胜者
    #return circle[0]

# 使用函数
winner = josephus(8, 5)
print(f"The winner is {winner}!")

382363955
回复

使用道具 举报

文明发言,和谐互动
文明发言,和谐互动
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0

关注

0

粉丝

46

主题

QQ|手机版|小黑屋|山东智趣岛论坛 ( 鲁ICP备2023024048号 )

GMT+8, 2025-7-4 20:35 , Processed in 0.267781 second(s), 54 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.