当前位置: 首页 > news >正文

【Python】约瑟夫环问题

任务描述

据说著名历史学家 Josephus有过以下的故事:Josephus及他的朋友共41人围成一个圆圈,由第1个人开始报数,每数到3该人就必须出去,然后再由下一个人重新报数,直到圆圈上少于3人为止。Josephus 将朋友与自己安排在第16个与第31个位置,成为最后剩下的人。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

扩展这个问题,当人数为n,每次报数为k时,求解最后的K-1个剩下的人的位置

输入格式‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

在同一行内输入两个正整数n和k,要求k > = 2且n >= k

输出格式‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

以列表形式显示剩余的人的序号。 如果k<2或者n<k,打印Data Error!

示例 1‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输入: 41 3

输出:
[16, 31]

‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

def f(n, k):ls_n = list(range(1, n+1))while len(ls_n) > k-1:ls_n = ls_n[k:] + ls_n[:k-1]return ls_nn, k = map(int,input().split(" "))
if k < 2 or n < k:print("Data Error!")
else:print(f(n, k))
http://www.lryc.cn/news/311473.html

相关文章:

  • Python成功解决AttributeError: ‘Series‘ object has no attribute ‘set_value‘
  • 基于springboot+vue的医院药品管理系统
  • Python爬虫——Urllib库-1
  • 瑞_Redis_短信登录(一)
  • 《剑指 Offer》专项突破版 - 面试题 70 : 排序数组中只出现一次的数字(C++ 实现)
  • Linux安全加固功能
  • 最新AI系统ChatGPT网站H5系统源码,支持Midjourney绘画
  • 【服务器数据恢复】昆腾存储中raid5磁盘阵列数据恢复案例
  • 企业微信变更主体怎么改?
  • 常用生理眼电信号整理合集 (EOG)
  • 【场景题】让你设计一个订单号生成服务,该怎么做?
  • 使用GraphView实现简单的绘图工具
  • javaWebssh教师荣誉库管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计
  • Android minigbm框架普法
  • 01、MongoDB -- 下载、安装、配置文件等配置 及 副本集配置
  • uniapp中导入css和scss的区别
  • RabbitMQ-TTL/死信队列/延迟队列高级特性
  • docker安装php7.4安装(swoole)
  • 身份证识别系统(安卓)
  • Python教程——最后一波来喽
  • 学生管理系统(python实现)
  • Java读取文件
  • 曾桂华:车载座舱音频体验探究与思考| 演讲嘉宾公布
  • 面试题HTML+CSS+网络+浏览器篇
  • wordpress外贸独立站
  • [python] 构建数据流水线(pipeline)
  • 计算机网络-网络互连和互联网(五)
  • 【深度学习】Pytorch基础
  • C++模拟揭秘刘谦魔术,领略数学的魅力
  • JAVA语言编写一个方法,两个Long参数传入,使用BigDecimal类,计算相除四舍五入保留2位小数返回百分数。