请教一个算法
请教一个问题,如下:将一个数Y分成列表中的若干个数,使若干个数在列表中,且若干个数之和等于Y
例:
列表:2000,3000,4000,8000,20000,40000,60000
Y=20000,Y始终在列表中,分成若十个数的最大个数设为4,结果可以为:
{4000,8000,8000}{20000}
Y=20000,Y始终在列表中,分成若十个数的最大个数设为5,结果可以为:
{2000,2000,4000,4000,8000}{4000,8000,8000}{20000}
Y=40000,Y始终在列表中,分成若十个数的最大个数设为5,结果可以为:
{4000,4000,8000,4000,20000}{2000,2000,8000,8000,20000}{40000}{20000,20000}
多个结果,随机返回一种即可