随机生成和为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。
时间: 2025-01-23 16:45:44
随机生成和为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。