Welcome

首页 / 软件开发 / 数据结构与算法 / 经典算法(13) 随机生成和为S的N个正整数——投影法

经典算法(13) 随机生成和为S的N个正整数——投影法2014-01-03 csdn MoreWindows随机生成和为S的N个正整数有很多种解法。下面讲解一种比较高效且比较有趣味性的解法——投影法。

以生成和为20的4个数为例,可以先生成随机生成0到20之间的三个数字再排序,假设得到了4,7,18 。然后在X-Y数轴上画出这三个数,如下图:

然后将这些数值投影到Y轴上 ,可得下图:

由图很容易看出AB,BC,CD, DE这四段的长度和肯定为20。因此AB,BC,CD,DE这四段的长度即和为20的4个数,这4个数分别为4,3,11 ,2。