python实现输出一个序列的所有子序列示例

作者:Tiffany_959 时间:2022-04-13 18:34:45 

如下所示:


def sub(arr):
finish=[]
size = len(arr)
end = 1 << size #end=2**size
for index in range(end): # shift index
 array = []
 for j in range(size):
  # 00,01,10,11 is symmetrical
  if (index >> j) % 2: # this result is 1, so do not have to write ==
   array.append(arr[j])
 # print(array)
 finish.append(array)
return finish

python实现输出一个序列的所有子序列示例

移位运算符 << 的优先级大于赋值 =

用01二进制串决定数组中的每个数字是否输出

[]=000;[1]=100;[2]=010;[3]=001;[1,2]=110;[1,2,3]=111…

如何实现?

第一个循环实现的是01串的遍历,eg.由000到111

第二个循环实现的是数组的遍历,eg.将000与数组中的每一位数字做判断

在if语句中,用到了向右移位,由于二进制串是对称的,所以我们可以将01串从后向前与数组中的每一位数字做判断。

eg.001与100对称,110与011对称…

在001中,最后一位是1,说明数组中3需要输出

但是在我们遍历数组的时候,先遇到的是1与arr[0],不过由于对称性,这种情况其实与在100中,后遇到的是1与arr[2]

来源:https://blog.csdn.net/Tiffany_959/article/details/102651770

标签:python,输出,序列,子序列
0
投稿

猜你喜欢

  • Mysql数据库命令大全

    2024-01-26 09:09:39
  • 分布式爬虫scrapy-redis的实战踩坑记录

    2022-03-02 02:13:24
  • 利用d3.js实现蜂巢图表带动画效果

    2024-04-18 10:15:19
  • 使用php数据缓存技术提高执行效率

    2023-05-24 23:14:24
  • Access秘密技巧和陷阱

    2008-04-12 14:55:00
  • 初学者必读:经典的数据库记录分页代码

    2009-01-08 15:27:00
  • Python实现监控内存使用情况和代码执行时间

    2023-05-02 15:42:02
  • win8下python3.4安装和环境配置图文教程

    2022-10-29 03:23:29
  • python实现opencv+scoket网络实时图传

    2023-07-03 16:09:17
  • Python中的Selenium异常处理

    2021-08-28 04:15:23
  • MySQL8.0的WITH查询详情

    2024-01-24 16:43:16
  • python+tkinter编写电脑桌面放大镜程序实例代码

    2023-08-02 17:10:43
  • Python爬虫入门案例之爬取二手房源数据

    2021-07-13 15:31:41
  • 使用PHP实现生成HTML静态页面

    2023-11-14 11:14:41
  • Xml Http抓取数据时乱码问题解决

    2008-04-24 11:16:00
  • Python中数组切片的用法实例详解

    2022-09-18 16:51:42
  • js实现局部页面打印预览原理及示例代码

    2024-04-25 13:13:48
  • Python socket模块ftp传输文件过程解析

    2021-04-17 02:22:59
  • 解析php session_set_save_handler 函数的用法(mysql)

    2023-11-17 21:58:28
  • vue封装一个弹幕组件详解

    2024-05-09 15:28:38
  • asp之家 网络编程 m.aspxhome.com