算法:检查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个元素。

例如

  1. N = 4 且 K = 2 那么 我们可以选择 {0.5 ,0.5 ,0.5 ,0.5} 或 {0.25 ,0.75 ,0.5 ,0.5} 因为它们的总和是 2 所以答案是肯定的。
  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)

我希望,你明白了!