python模拟报数游戏

2023-10-27

题目:编写程序,模拟报数游戏。有n个人围成一圈,顺序编号,从第一个人开始从1到k(假设k=3)报数,报到k的人退出圈子,然后圈子缩小,从下一个人继续游戏,问最后留下的是原来的第几号。

思路:

初步实现功能,使用集合输出剩下的数字,而未考虑是第几号(每次从头开始报数)

n = 10
k = 3
people = [i for i in range(0, n+1)]

remain = {}
removePeople = []
while n>= k:
    cancel = people.pop(k-1)
    # 所有退出的人
    removePeople.append(cancel)
    print(removePeople)
    # 剩下的人
    remain = set(people) - set(removePeople)
    n = n -1
print(remain)
#输出
[2]
[2, 3]
[2, 3, 4]
[2, 3, 4, 5]
[2, 3, 4, 5, 6]
[2, 3, 4, 5, 6, 7]
[2, 3, 4, 5, 6, 7, 8]
[2, 3, 4, 5, 6, 7, 8, 9]
{0, 1, 10}

完成剩下数字对应的号,使用列表(每次从头开始报数)

"""完成剩下数字对应的号"""
n = 10
k = 3
people = [i for i in range(1, n+1)]

remain = []
removePeople = []
while n>= k:
    cancel = people.pop(k-1)
    # 所有退出的人
    removePeople.append(cancel)
    # print(removePeople)
    # 剩下的人
    remain = [num for num in people if num not in removePeople]
    n = n -1
    #剩下人对应的原始序号
    index = [people.index(j) for j in remain]
print(remain)
print(index)
#输出
print(remain)
[1, 2]
print(index)
[0, 1]

每次从下一个人开始报数

"""从下一个人开始报数"""
n = 10
k = 3
people = [i for i in range(0, n+1)]

removePeople = []
index = k-1
while len(people)>= k:
    index = (index + len(people))%len(people)
    cancel = people.pop(index)
    # 所有退出的人
    removePeople.append(cancel)
    index = index + k - 1

print(people)
print(removePeople)
#输出
[1, 6]
[2, 5, 8, 0, 4, 9, 3, 10, 7]
#输出剩下的数字及其在原始列表中的序号
"""从下一个人开始报数"""
n = 10
k = 3
people = [i for i in range(1, n+1)]

removePeople = []
index = k-1
newPeople = people[:]
removePeople = []
while len(newPeople)>= k:
    index = (index + len(newPeople))%len(newPeople)
    # print(index)
    cancel = newPeople.pop(index)
    # 所有退出的人
    removePeople.append(cancel)
    index = index + k - 1

newIndex=[people.index(i) for i in newPeople]
print(newPeople, newIndex, sep='\n')

输出:

[4, 10]

[3, 9]

#遍历补充知识:列表中的序号及数值方法https://blog.csdn.net/jarwis/article/details/119323272

list = ['html', 'js', 'css', 'python']

# 方法1
for i in list:
print ("序号:%s 值:%s" % (list.index(i) + 1, i))

# 方法2
for i in range(len(list)):
print ("序号:%s 值:%s" % (i + 1, list[i]))

# 方法3
for i, val in enumerate(list):
print ("序号:%s 值:%s" % (i + 1, val))
# enumerate()函数的第二个参数只是改变了序号的起始值
for i, val in enumerate(list, 2):
print ("序号:%s 值:%s" % (i + 1, val))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python模拟报数游戏 的相关文章

  • 如何在Python中选择要写入(.csv)的列

    import csv f csv reader open lmt csv r open input file for reading Date Open Hihh mLow Close Volume zip f s plit it into
  • 如何实现 __eq__ 进行集合包含测试?

    我遇到了一个问题 我将一个实例添加到一个集合中 然后进行测试以查看该对象是否存在于该集合中 我已经覆盖了 eq 但在包含测试期间不会调用它 我必须覆盖吗 hash 反而 如果是这样 我将如何实施 hash 鉴于我需要对元组 列表和字典进行哈
  • pandas Wide_to_long 后缀参数

    我对在 pandas 中使用 Wide to long 时的参数有疑问 有一个参数叫suffix我不明白 在文档中它说 后缀 str 默认 d 捕获所需后缀的正则表达式 d 捕获数字后缀 没有数字的后缀可以用否定字符类 D 指定 您还可以进
  • ca 证书 Mac OS X

    我需要在emacs 上安装offlineimap 和mu4e 问题是配置 当我运行 Offlineimap 时 我得到 OfflineIMAP 6 5 5 Licensed under the GNU GPL v2 v2 or any la
  • 正则表达式,选择最接近的匹配

    假设以下单词序列 BLA text text text text text text BLA text text text text LOOK text text text BLA text text BLA 我想做的是将 BLA 中的文本
  • Perl 是否有相当于 Python 的 `if __name__ == '__main__'` 的功能?

    有没有一种方法可以确定当前文件是否是 Perl 源中正在执行的文件 在 Python 中 我们使用以下结构来做到这一点 if name main This file is being executed raise NotImplemente
  • 将一维数组转换为下三角矩阵

    我想将一维数组转换为较低的零对角矩阵 同时保留所有数字 我知道numpy tril函数 但它用零替换了一些元素 我需要扩展矩阵以包含所有原始数字 例如 10 20 40 46 33 14 12 46 52 30 59 18 11 22 30
  • numpy:大量线段/点的快速规则间隔平均值

    我沿着一维线有许多 约 100 万个 不规则间隔的点 P 这些标记线段 这样 如果点是 0 x a x b x c x d 则线段从 0 gt x a x a gt x b x b gt x c x c gt x d 等 我还有每个段的 y
  • 如何将类添加到 LinkML 中的 SchemaDefinition?

    中的图表https linkml io linkml model docs SchemaDefinition https linkml io linkml model docs SchemaDefinition and https link
  • 在 iPython/pandas 中绘制多条线会生成多个图

    我试图了解 matplotlib 的状态机模型 但在尝试在单个图上绘制多条线时遇到错误 据我了解 以下代码应该生成包含两行的单个图 import pandas as pd import pandas io data as web aapl
  • 将列表中的 None 替换为最左边的非 none 值

    Given a None 1 2 3 None 4 None None I d like a None 1 2 3 3 4 4 4 目前我已经用以下方法强制它 def replaceNoneWithLeftmost val last Non
  • uri 警告中缺少端口:使用 Python OpenCV cv2.VideoCapture() 打开文件时出错

    当我尝试流式传输 ipcam 时 出现了如下所示的错误 tcp 000000000048c640 uri 中缺少端口 警告 打开文件时出错 build opencv modules videoio src cap ffmpeg impl h
  • 为什么 __instancecheck__ 没有被调用?

    我有以下 python3 代码 class BaseTypeClass type def new cls name bases namespace kwd result type new cls name bases namespace p
  • 用于多个窗口的 Tkinter 示例代码,为什么按钮无法正确加载?

    我正在编写一个程序 应该 按一下按钮即可打开一个窗口 按另一个按钮关闭新打开的窗口 我使用类 以便稍后可以将代码插入到更大的程序中 但是 我无法正确加载按钮 import tkinter as tk class Demo1 tk Frame
  • 根据列索引重命名 Dataframe 列

    是否有内置函数可以按索引重命名 pandas 数据框 我以为我知道列标题的名称 但事实证明第二列中有一些十六进制字符 根据我接收数据的方式 我将来可能会在第 2 列中遇到这个问题 因此我无法将这些特定的十六进制字符硬编码到 datafram
  • 在 Python 中访问 argparse 的参数值

    我正在尝试为我的程序设置一些简单的标志参数 但无法弄清楚如何访问它们 我有 argparser parser argparse ArgumentParser description Simple PostScript Interpreter
  • 更新 SQLAlchemy 中的特定行

    我将 SQLAlchemy 与 python 一起使用 我想更新表中等于此查询的特定行 UPDATE User SET name user WHERE id 3 我通过 sql alchemy 编写了这段代码 但它不起作用 session
  • Pip 无法在 Windows 上安装 Twisted

    我正在尝试在 Windows 8 计算机上安装 Twisted 在 Twisted 官方网站上 只有一个 Windows 版的 Wheel 文件 https twistedmatrix com trac wiki Downloads htt
  • Streamlabs API 405 响应代码

    我正在尝试使用Streamlabs API https dev streamlabs com Streamlabs API 使用 Oauth2 来创建应用程序 因此 首先我将使用我的应用程序的用户发送到一个授权链接 其中包含我的应用程序的客
  • Python 中的字符串slugification

    我正在寻找 slugify 字符串的最佳方法 蛞蝓 是什么 https stackoverflow com questions 427102 in django what is a slug 我当前的解决方案基于这个食谱 http code

随机推荐

  • linux安装git步骤;基于yum、dnf、源码安装【非常详细】

    这里写目录标题 一 dnf安装 二 yum安装 三 源码安装 1 基于 RPM 的发行版 Fedora RHEL RHEL衍生版 2 基于 Debian 的发行版 Debian Ubuntu Ubuntu derivatives 3 yum
  • 一文看懂npm、yarn、pnpm之间的区别

    原文 Understanding differences between npm yarn and pnpm 作者 Alex Kras 翻译 雁惊寒 本文作者对比了当前主流的包管理工具npm yarn pnpm之间的区别 并提出了合适的使用
  • 【Java基础】【狂神说Java】Java零基础学习视频通俗易懂P21-26(Day1昨天忘记发布了)

    Java小技巧 idea下 psvm tab键 补全 public static void main String args sout enter键 鼠标点击选择 可以实现补全 System out println System out p
  • Spring5学习深入学习理解Bean自动装配

    Spring5学习深入学习理解Bean自动装配 关于作者 作者介绍 博客主页 作者主页 简介 JAVA领域优质创作者 一名在校大三学生 在校期间参加各种省赛 国赛 斩获一系列荣誉 关注我 关注我学习资料 文档下载统统都有 每日定时更新文章
  • Linux下shel脚本之批量修改文件扩展名

    Linux下shel脚本之批量修改文件扩展名 一 脚本要求 二 脚本内容 三 运行脚本 一 脚本要求 二 脚本内容 三 运行脚本 一 脚本要求 1 在 data tmp 下的所有文件扩展名改为 py 二 脚本内容 1 查看要修改扩展名的目录
  • 随机数选最少数字求和

    本文为最近做过的一道编程笔试题 代码实现方式多种多样 此处本人提供的代码可以获得正确解 仅供大家参考 目录 一 题目描述 二 实现代码程序 三 测试结果截图 一 题目描述 题目描述 小明用计算机随机生成了N个正整数 他希望从这N个数中选取若
  • 【深度学习】从LeNet-5识别手写数字入门深度学习

    活动地址 CSDN21天学习挑战赛 目录 LeNet模型 搭建环境 安装需要的包 创建工程 数据集 相关代码 可以设置GPU训练 默认CPU 通过TensorFlow下载数据集 对数据进行归一化处理 最值归一化 normalization
  • 显卡服务器已停止响应,快速解决W7系统提示显卡驱动程序已停止响应并且已恢复的故障...

    很多w7用户都遭遇过屏幕突然黑一下 小一会儿又恢复的故障 这时候托盘还会气泡提示用户 显示器驱动程序已停止响应 并且已恢复 据笔者验证 Windows Vista以后的电脑系统版本为了增强电脑系统的稳定性 电脑系统中加入了TDR服务 超时检
  • python 白噪声检验-利用python实现平稳时间序列的建模方式

    假如某个观察值序列通过序列预处理可以判定为平稳非白噪声序列 就可以利用ARMA模型对该序列进行建模 建模的基本步骤如下 1 求出该观察值序列的样本自相关系数 ACF 和样本偏自相关系数 PACF 的值 2 根据样本自相关系数和偏自相关系数的
  • uniapp项目,HBuilderX真机调试之夜神模拟器

    第一步 夜神模拟器相关配置 1 去官网下载并安装夜神模拟器 2 安装完后 打开模拟器 然后依次找到 设置 gt 关于平板电脑 gt 版本号 连续点击3次 版本号选项 具体根据系统提示操作 然后返回上一页就可以看到开发者选项 开启了开发者模式
  • CentOS禁止Ping方法

    有时候根据需要 如防止攻击 Linux服务器管理员可限制服务器禁止其它用户Ping 同时又保证Linux服务器又可以Ping其它服务器 本文提供两种禁Ping方法 1 通过修改配置文件 这个方法需要ROOT权限 且设置成功后别人无法Ping
  • 密码学之欧拉函数

    最近在学习网易公开课上可汗学院现代密码学的课程 整理了一下自己的笔记 名词 概念 算术基本定理 任何一个数字有且只有一种质因数分解 例如 30 2 3 5 单向函数 正向结合很简单 反向分解很复杂 例如 两个质数相乘容易 将其合数分解很难
  • 块坐标下降法(Block Coodinate Descent)

    问题的描述 给定一个可微的凸函数 如果在某一点x 使得f x 在每一个坐标轴上都是最小值 那么f x 是不是一个全局的最小值 形式化的描述为 是不是对于所有的d i都有 这里的代表第i个标准基向量 答案为成立 这是因为 但是问题来了 如果对
  • mysql备份表的两种方法(数据迁移)

    mysql备份的两种方法 传输方式 单表传输 在数据量小的情况下一般采用insert的方法向备份表中插入数据 当源表的数据量过大时使用表空间的方式进行数据的迁移 第一种方法 针对表中数据量小的情况 1 使用源表的表结构建新的备份表 源表为t
  • 从Eclipse官网查找自己要的插件地址 来安装

    有时候 eclipse自带的应用市场 安装插件老是失败 此时可以试试官网的插件地址 进入eclipse官网 https www eclipse org 选择如图 Marketplace 输入你要查询的插件 点击下载图标 选择你对应的ecli
  • 用户扫描普通二维码进入小程序指定页面详细步骤

    用户扫描普通二维码进入小程序指定页面详细步骤 一 进入微信公众平台小程序开发管理 开发设置 扫普通链接二维码打开小程序 启用 二 添加规则 我这里二维码规则为前台项目地址 可自行修改 下载的校验文件放在了项目里面 根据要求需要放在该服务器域
  • CCleaner如何阻止Internet服务提供商获取您的数据

    要阻止ISP获取您的数据 您需要使用VPN服务 或虚拟隧道提供程序Tor来屏蔽所有浏览行为 要阻止广告客户跟踪广告 您需要在每次浏览完成后清理Cookie CCleaner http www ccleaner cc 会自动执行此操作 CCl
  • c++ primer plus第六版复习题及答案

    第九章 1 对于下面的情况 应该使用哪种存储方案 a homer 是函数的形参 答 homer将自动成为自动变量 b secret 变量由两个文件共享 答 应该在一个文件中将secret变量定义为外部变量 并在第二个文件中使用extern声
  • 如何用python编辑 题目: 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

    如何用python编辑 题目 有1 2 3 4个数字 能组成多少个互不相同且无重复数字的三位数 都是多少 如何用python编辑 题目 有1 2 3 4个数字 能组成多少个互不相同且无重复数字的三位数 都是多少 题目分析 四个数字组成三位数
  • python模拟报数游戏

    题目 编写程序 模拟报数游戏 有n个人围成一圈 顺序编号 从第一个人开始从1到k 假设k 3 报数 报到k的人退出圈子 然后圈子缩小 从下一个人继续游戏 问最后留下的是原来的第几号 思路 初步实现功能 使用集合输出剩下的数字 而未考虑是第几