算法:检查n个随机数的总和是否等于整数K?

时间:2015-01-03 13:22:17

标签: algorithm random sum double random-sample

我们有n个小于1.0且大于0的随机数,即0.0 <0。 a_i&lt; 1.0。

如何检查是否存在包含属性a_i元素的集合S,使得所有a_i的求和等于整数常数K,其中i = 1,2,...,n?

注意:set应包含n个元素。

e.g。

  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.

1 个答案:

答案 0 :(得分:0)

            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>总和)&amp;&amp; (总和> = K)

我希望,你得到了!