鱼C论坛

 找回密码
 立即注册
查看: 3607|回复: 4

关于在一系列数中取几个数的问题,求帮忙,谢谢

[复制链接]
发表于 2023-4-16 13:03:09 | 显示全部楼层
本帖最后由 歌者文明清理员 于 2023-4-16 13:35 编辑

根据您的描述,你可以按照以下步骤取数:
  • 如果 x <= 31,那么直接取所有的数字。
  • 如果 x > 31,则需要从序列中选择 31 个数字。其中,最开始和最后的数字必须被选中。其余数字根据固定间隔选取。


具体实现代码可以如下所示:

  1. # 第一步
  2. if x <= gap:
  3.     gap_list = list(lng)
  4.    
  5. # 第二步
  6. else:
  7.     gap_list.append(0)  # 加入第一个数

  8.     # 计算要选几个数,以及每个数之间的间隔
  9.     num_of_gaps = gap - 2
  10.     gap_size = (x - 1) // num_of_gaps

  11.     # 按照间隔选取数值
  12.     index = gap_size + 1
  13.     while len(gap_list) < gap - 1:
  14.         gap_list.append(lng[index])
  15.         index += gap_size

  16.     gap_list.append(x - 1)  # 加入最后一个数
复制代码
在这段代码中,我们使用了列表 gap_list 来保存选取的数值。一开始,我们将 0 添加到 gap_list 中(即第一个数),然后计算出剩余应该选取的数的数量并计算其间隔大小。然后,按照相应的间隔,从原始序列 lng 中选取数值并添加到 gap_list 中。最后,将 x-1 (即最后一个数)添加到 gap_list 中。

希望这可以帮助到您。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-6 03:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表