-2

我需要找到生成 3 个随机数的算法,但要满足以下条件:

1) |part1| +|part2|+|part3|=< SumConst,其中 SumConst 是偶数,SumConst 不是大数 ( 0< SumConst< 13)

2) 对于每个部分-1*SumConst=< part =< SumConst

3)part1 +part2+part3=0

一些例子:

SumConst=2

-1,1,0; 

SumConst=10

-5,5,0 ; -2,-3,5; -4,-1,5 ...
4

1 回答 1

0

由于您的条件非常有限,因此为给定的所有有效可能性生成一个表格可能会更容易sumConst。然后,您可以轻松地随机选择其中一个。在一些预处理和一些空间的交易中,每次查找都会更快。

生成列表的伪代码(不检查错误,只是一个大概的想法):

for a = -sumConst to sumConst
    bMax = sumConst - |a|
    for b = -bMax to bMax
        c = -a - b
        if |a| + |b| + |c| <= sumConst
            add (a,b,c) to list
于 2013-10-08T17:26:25.003 回答