在非常特定的约束下生成随机数

ktd*_*drv 12 python random algorithm

我遇到了以下编程问题.我需要生成n (a, b)元组,其中所有的总和a是给定的,A并且所有b的总和是给定的,B并且对于每个元组,比率a / b在范围内(c_min, c_max).A / B也在同一范围内.我也试图确保除了约束引入的结果之外,结果中没有偏差,并且a / b值在给定范围内或多或少均匀分布.

一些澄清和元约束:

  • A,B,c_min,和c_max给出.
  • 比率A / B在该(c_min, c_max)范围内.如果问题是在给定其他约束的情况下得到解决方案,则必须如此.
  • a和b >0是非整数.

我试图在Python中实现这一点,但我们非常感谢任何语言(包括英语)的想法.

ros*_*sum 2

首先根据需要生成尽可能多的相同元组 n:

(A/n, B/n)

现在随机选择两个元组。对其中一个值进行随机更改,并对另一个值进行a补偿性更改,使所有内容都保持在给定的约束范围内。a将两个元组放回去。

现在随机选择另一对。这次要摆弄价值观b

起泡沫,重复冲洗。

  • 您应该何时停止该过程以及如何强制“a/b”或多或少均匀分布? (3认同)