小编Nic*_*253的帖子

在Python中生成所有可能的长度为N的列表,这些列表总和为S.

我正在尝试生成所有可能的长度N的列表,总和为S.我已经编写了一些代码来执行此操作,但是在任何大的(特别是,我希望N = 5,S = 100),我遇到了内存溢出错误.

我正在寻找一个更好的问题解决方案,或者一种改进我的代码的方法,以便我可以在N = 5,S = 100上运行它.下面这两个程序协同工作,在嵌套列表中创建所有可能的数字组合,然后将它们重新设置为正确的格式.下面再现了一些样本输出.

我知道我的代码不是最好的.我是一名工程师(我知道,我知道),所以编码并不完全是我的专长.我感谢您提供的任何帮助.

编辑:我只是想澄清一些事情.首先,列表中的零可以,列表可以包含相同数字的倍数,列表中数字的顺序很重要.

def nToSum(N,S):
    ''' Creates a nested list of all possible lists of length N that sum to S'''
    if N <= 1: #base case
        return [S]
    else:
        L = []
        for x in range(S+1):   #create a sub-list for each possible entry of 0 to S 
            L += [[x,nToSum(N-1,S-x)]]  #create a sub-list for this value recursively
        return L

def compress(n=[],L): #designed to take in a list generated by nToSum …
Run Code Online (Sandbox Code Playgroud)

python recursion sum list

4
推荐指数
1
解决办法
2830
查看次数

Powershell点符号不选择数据

我遇到了让Powershell按照我期望的方式行事的问题.

我正在尝试使用get-wmiobject win32_networkconnection列出当前用户的映射驱动器,因此我可以遍历驱动器.

当我运行时,$var = get-wmiobject win32_networkconnection | select -expand localname我得到了我所期望的:映射网络连接的驱动器号列表.

但是,当我跑步时,$var = (get-wmiobject win32_networkconnection).localname我什么也得不到.它似乎没有正确选择属性.

这是有问题的,因为理想情况下,我想遍历所有驱动器,然后为每个驱动器选择各种属性.相反,似乎我将被迫将迭代器整合在一起,然后一次迭代所有变量(在我看来不是很优雅).

我对Powershell并不熟悉,所以可能会有一些我不知道的事情.但是,从我所读到的,这应该是有效的.这是一个限制get-wmiobject吗?

powershell powershell-2.0

2
推荐指数
1
解决办法
410
查看次数

标签 统计

list ×1

powershell ×1

powershell-2.0 ×1

python ×1

recursion ×1

sum ×1