我认为这个问题可以使用itertools或者笛卡尔来解决,但我对Python很新,我正在努力使用它们:
我有5个股票的投资组合,其中每个股票的权重可以是-0.4,-0.2,0,0.2或0.4,权重加起来为0.我如何创建一个函数来生成每个可能组合的列表权重.例如[-0.4,0.2,0,0.2,0] ......等
理想情况下,该功能适用于n种股票,因为我最终希望对50种股票进行相同的处理.
编辑:为了澄清,我正在寻找长度为n的所有组合(在这种情况下为5),求和为0. 值可以重复:例如:[0.2,0.2,-0.4,0,0],[0.4,0 ,-0.2,-0.2,0.4],[0,0,0,0.2,-0.2],[0,0.4,-0.4,0.2,-0.2]等.[0,0,0,0,0]将是一个可能的组合.有5个可能的权重和5个股票的事实是巧合(我应该避免!),同样的问题可能是5个可能的权重和3个股票或7个股票.谢谢.