算法:检查n个随机数的和是否等于整数K?
Algorithm: check whether the summation of n random numbers is equal to integer K?
我们有 n 个小于 1.0 且大于 0 的随机数,即 0.0 < a_i < 1.0 .
如何检查是否存在包含属性 a_i 元素的集合 S,使得所有 a_i 的总和等于整数常量 K,其中 i=1 ,2,...,n ?
注意:集合应该包含n个元素。
例如
- N = 4 且 K = 2 那么
我们可以选择 {0.5 ,0.5 ,0.5 ,0.5} 或 {0.25 ,0.75 ,0.5 ,0.5} 因为它们的总和是 2 所以答案是肯定的。
- N = 4 和 K = 4 那么答案是否定的,因为我们不能选择 a_i 这样他们的总和 K = 4 .
B1-1<A1 <= B1
B2-1<A2 <= B2
B3-1<A3 <= B3
........
........
Bn-1<An <= Bn
n => Total number of elements.
求和(就像我们在第 10 个标准中所做的那样:) :))
我认为没有必要为 sum=B1+B2+...+Bn 编写伪代码:)
sum-n < K(given) <= sum-n<K-sum <= 0
这个条件等价于(K+n>sum) && (sum>=K)
我希望,你明白了!
我们有 n 个小于 1.0 且大于 0 的随机数,即 0.0 < a_i < 1.0 .
如何检查是否存在包含属性 a_i 元素的集合 S,使得所有 a_i 的总和等于整数常量 K,其中 i=1 ,2,...,n ?
注意:集合应该包含n个元素。
例如
- N = 4 且 K = 2 那么 我们可以选择 {0.5 ,0.5 ,0.5 ,0.5} 或 {0.25 ,0.75 ,0.5 ,0.5} 因为它们的总和是 2 所以答案是肯定的。
- N = 4 和 K = 4 那么答案是否定的,因为我们不能选择 a_i 这样他们的总和 K = 4 .
B1-1<A1 <= B1
B2-1<A2 <= B2
B3-1<A3 <= B3
........
........
Bn-1<An <= Bn
n => Total number of elements.
求和(就像我们在第 10 个标准中所做的那样:) :))
我认为没有必要为 sum=B1+B2+...+Bn 编写伪代码:)
sum-n < K(given) <= sum-n<K-sum <= 0
这个条件等价于(K+n>sum) && (sum>=K)
我希望,你明白了!