各位大神,渣渣有一题关于随机数的问题不会做

随机生成n个数,n个数的和为sum,sum乘一个0到1之间的数(键盘输入),
求生成随机数所有子集中和为sum的子集,随机数生成器已经提供,该怎么求这个子集
现在语言只会c++,求大神帮助

可以用递归实现。对没有选取的数字中<sum-已经选的数字和的数字应用自身。