数据结构与算法(二) --- 全排列、全组合

本文深入探讨了组合数学中常见的算法实现,包括全排列、子集生成等,通过Python代码详细解释了递归与非递归的方法,为读者提供了丰富的算法理解和实践案例。

1. \(全排列C_{m}^{n}\)的实现

【要求】输入m,n, 输出所有可能的索引组合

def cmn(m, n):
    if n ==1:
        return [[i] for i in range(1, m+1)]
    elif m==n:
        return [ list(range(1, m+1)) ]
    else:
        temp1 = cmn(m-1, n)
        temp2 = [ i+[m] for i in cmn(m-1, n-1)]
        return temp1 + temp2
    
if __name__ == '__main__':
    print( cmn(5, 2) )

输出:
[[0, 1], [0, 3], [1, 3], [0, 4], [1, 4], [2, 4], [0, 5], [1, 5], [2, 5], [3, 5]]

2. 全部子集

递归

def subsets2(aim):
    # if len(aim) == 1: # 这样不行
    #     return [aim]
    if not aim:
        return [[]]
    else:
        temp1 = subsets2(aim[1:])
        temp2 = [[aim[0]] + i for i in temp1]
        return temp1 + temp2

非递归

def subsets1(nums):
    result = [[]] # 不能result=[]
    for num in nums:
        result += [item + [num] for item in result]
    return result

输出:
[[], [2], [1], [1, 2], [0], [0, 2], [0, 1], [0, 1, 2]]

全排列


class Solution:
    '''
    最简单的办法是:
    from itertools import combinations, permutations
    '''
    def sort_all(self, aim):
        # 全排列
        length = len(aim)
        if length == 0:
            print('空字符串')
            raise TypeError
        elif length == 1:
            return [aim]
        else:
            result = []
            for i in range(length):
                temp = aim[:i] + aim[i+1:]
                for j in self.sort_all(temp) :
                    result.append(aim[i] + j)
            return result   

转载于:https://www.cnblogs.com/geoffreyone/p/11608867.html

内容概要:本文围绕AI浪潮下数据中心供电架构的变革展开,深入分析了芯片功率持续增长、机柜功率密度提升至兆瓦级、集群规模扩大至百兆瓦乃至吉瓦级的发展趋势。面对高功率、快波动的AI负载以及电网承载压力,传统供电方案面临挑战,推动800V高压直流(HVDC)、极简UPS、Sidecar供电、固态变压器(SST)等新型供电技术的发展。文章对比了中美在供电路径上的差异:美国倾向于市电直供+800V Sidecar架构,中国则基于现有240V HVDC体系向800V系统平稳升级,并提出极简UPS800V直流系统融合的过渡方案。同时强调技术演进应遵循渐进式、多元化共存的原则,重视前瞻性布局试点验证。适合人群:从事数据中心规划设计、供配电系统研发、能源管理及相关基础设施建设的技术人员管理人员,尤其是关注AI算力中心高密度供电解决方案的专业人士。使用场景及目标:①理解AI驱动下数据中心供电系统的核心挑战发展路径;②掌握800V高压直流、极简UPS、Sidecar等前沿供电技术的特点适用条件;③借鉴中美差异化技术路线,制定符合本地实际的数据中心供电升级策略。阅读建议:本文技术性强,涉及大量专业术语系统架构图示,建议结合图表仔细研读,重点关注不同功率区间下的技术选型逻辑演进时间线,便于在实际项目中进行方案比选长远规划。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值