跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Python 高效遍历 集合所有子集的全组合
未分類
3 9 月 2020

Python 高效遍历 集合所有子集的全组合

Python 高效遍历 集合所有子集的全组合

資深大佬 : naix1573 12

最近在用 Python 做一个图形化界面 tkinter 的小工具,目的是为了把一个集合里的所有组合给遍历出来,与另外给定的一个值相匹配,把相等的那些组合输出。

本来用的 combinations,但是后来集合里的数一多之后,程序容易未响应

后来查到用二进制位运算的方法,https://blog.csdn.net/bquau/article/details/88836357

但是当集合里的数达到 47 个的时候,程序也未响应了,不知道各位大佬有没有什么办法啊~

arr = “$57,297.60 $53,573.02 $109,771.72 $43,386.68 $50,667.74 $50,171.84 $50,116.20 $54,679.96 $180,469.76 $48,363.96 $53,830.44 $54,882.94 $39,291.00 $42,284.76 $56,562.80 $50,566.64 $49,074.30 $49,547.44 $57,377.27 $78,517.60 $98,067.60 $59,814.15 $48,171.20 $53,398.52 $53,855.76 $159,975.77 $104,100.16 $49,196.98 $56,236.80 $48,394.16 $48,516.08 $51,086.12 $176,979.69 $48,359.82 $38,507.20 $47,707.80 $45,640.80 $45,691.18 $39,096.42 $39,102.40 $48,984.36 $101,147.01 $96,127.95 $38,416.00 $36,247.80 $35,989.12 $40,142.10”

su = “537754.94”

大佬有話說 (7)

  • 主 資深大佬 : naix1573

    找到一个 java 实现的,用着没问题,可惜我不知道这个用 python 要怎么写啊,头疼
    https://www.cnblogs.com/zlingh/p/4040742.html

    我把数组重新发一下 [‘57297.60’, ‘53573.02’, ‘109771.72’, ‘43386.68’, ‘50667.74’, ‘50171.84’, ‘50116.20’, ‘54679.96’, ‘180469.76’, ‘48363.96’, ‘53830.44’, ‘54882.94’, ‘39291.00’, ‘42284.76’, ‘56562.80’, ‘50566.64’, ‘49074.30’, ‘49547.44’, ‘57377.27’, ‘78517.60’, ‘98067.60’, ‘59814.15’, ‘48171.20’, ‘53398.52’, ‘53855.76’, ‘159975.77’, ‘104100.16’, ‘49196.98’, ‘56236.80’, ‘48394.16’, ‘48516.08’, ‘51086.12’, ‘176979.69’, ‘48359.82’, ‘38507.20’, ‘47707.80’, ‘45640.80’, ‘45691.18’, ‘39096.42’, ‘39102.40’, ‘48984.36’, ‘101147.01’, ‘96127.95’, ‘38416.00’, ‘36247.80’, ‘35989.12’, ‘40142.10’]

  • 資深大佬 : bnm965321

    是直接遍历 combinations 生成器么?

  • 資深大佬 : binux

    你的意思是 k-sum ?

  • 主 資深大佬 : naix1573

    @bnm965321 #2 对 但是这样效率比较低,像=想找个高效的方法。

    @binux #3 恩恩,好像是这个。

  • 資深大佬 : binux

    @naix1573 你不限制下数据范围,那效率可是 n^(k-1) 啊

  • 資深大佬 : JeffGe

    程序未响应只是你的计算比较花时间,计算过程中单线程的 Python 没法响应图形更新而已,你把计算交给另一个进程就可以了

  • 資深大佬 : renmu123

    笛卡尔积?我记得 Python 的 itertools 标准库有实现,你看一下

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具