如何根据分配给每一行的概率机会从数据库中选择随机行。
例子:
Make Chance Value
ALFA ROMEO 0.0024 20000
AUDI 0.0338 35000
BMW 0.0376 40000
CHEVROLET 0.0087 15000
CITROEN 0.016 15000
........
如何根据必须选择的可能性来选择随机的品牌名称及其值。
rand()
和ORDER BY
可以结合使用吗?如果是这样,最好的方法是什么?
您可以通过使用rand()
然后再使用累积和来执行此操作。假设它们的总和为100%:
select t.*
from (select t.*, (@cumep := @cumep + chance) as cumep
from t cross join
(select @cumep := 0, @r := rand()) params
) t
where @r between cumep - chance and cumep
limit 1;
笔记:
rand()
在子查询中被调用一次以初始化变量。多次调用rand()
是不可取的。limit 1
任意选择1。cumep > @r
。我有下面的数组 这将给出主要结果为,而不是。 总价值是100%概率。数值可以是十进制,也可以是55.55、10.10等,但总的来说是100% 我已经跟踪https://www.geeksforgeeks.org/how-to-get-random-value-out-of-an-array-in-php/ 但这并没有给出预期的完美结果。 所以哪个概率最高应该主要随机选择。 所以结果可以是这样的:5
我想知道(例如在Java中)在特定范围内生成随机数的最佳方法是什么,其中每个数都有一定的发生概率? e. g. 从[1;3]中生成概率如下的随机整数: P(1)=0.2 P(2)=0.3 P(3)=0.5 现在,我正在考虑在[0;100]范围内生成一个随机整数的方法,并执行以下操作: 如果在[0; 20]以内--
假设我有一个从1到10的值范围。我想根据某种高斯概率从这个范围中随机选择一个数字。所以,有更高的机会得到大约4,5,6的值。仍然有机会得到1和10,但机会更小。它不需要完全遵循高斯分布,因为那样1和10的值几乎是不可能得到的。我希望至少改变和歪曲得到极值的机会,同时分散得到其他值的机会。通过倾斜,我的意思是有时我希望得到10的机会大于1。所以分布不一定是对称的。 我试着使用random类创建一个随
我正在尝试从以下枚举中筛选,以根据随机机会选择其中一个值。 目前,我正在使用此代码选择一个值。 还有我的随机效用函数 目前,大多数情况下,它将准确地选择一个没有问题的层值。然而,大约在的时候,我会得到一个索引arrayoutofbounds。 我知道这是因为枚举中的机会分散到很远的地方(因为如果我向枚举添加更多值,机会不会像它们那样分散,那么就不会发生此异常)。 如何修复此错误?或者有更好的方法
问题 你想从一个序列中随机抽取若干元素,或者想生成几个随机数。 解决方案 random 模块有大量的函数用来产生随机数和随机选择元素。 比如,要想从一个序列中随机的抽取一个元素,可以使用 random.choice() : >>> import random >>> values = [1, 2, 3, 4, 5, 6] >>> random.choice(values) 2 >>> random
问题内容: 我想知道在特定范围内生成随机数的最佳方法(例如在Java中)是什么,而每个范围内的每个数字都有一定的发生概率? 例如 从[1; 3]内产生随机整数,并具有以下概率: P(1)= 0.2 P(2)= 0.3 P(3)= 0.5 现在,我正在考虑在[0; 100]内生成随机整数并执行以下操作的方法: 如果它在[0; 20]之内->我得到我的随机数1。 如果它在[21; 50]之内->我得到