和值组合问题,如:正整数1到80中,选择20个不同的数,求这些数之和为810的组合数量。
类似的问题可以通过递归枚举、动态规划等算法进行求解。上述参数下,枚举已经无法胜任,通过动态规划法,结果是15542763534960598。
但是,如果规模很大,如:正整数1到1000中,选择500个不同的数,求这些数之和为256000的组合数量。受时间和空间的之约,或是耗时巨大,或是内存不足,导致动态规划算法无法实现或没有实际意义。
除了编程求解,有没有数学方法直接计算结果?
取值可重复?还是不可重复
那你是不是通过编程然后去总结这个数学规律呢?哈哈哈,再说你为啥有内存和耗时的忧虑?高性能的计算多的是,还有超级计算机,一秒内可以进行数百亿亿次数据运算