【发布时间】:2012-03-14 23:19:29
【问题描述】:
我有一个假设为 250 个 URL 的表格:
create table url (
id serial,
url varchar(64)
)
这些 URL 对应一个网站。每个网站都有不同的受欢迎程度。假设id=125(以高斯为中心的那个)最受欢迎,id=1 或id=250 最不受欢迎。
我想在“url”表中提供的值中填充一个类似于下面的“日志”表,但考虑到不同的 URL 可能会更频繁地出现(例如 url,其 id 为125 将是最受欢迎的)。
create table log (
id serial,
url_id integer
)
我想避免使用random(),因为它是统一的,不是很“真实”。
如何使用 Postgresql 实现这一点?
【问题讨论】:
-
为什么你认为流行度或排名具有高斯分布?
-
您可以使用 RAND 使用该分布的 PDF 计算任何分布(产生 0 和 1 之间的值,对吗?)。对于高斯发行版,这将是 1/2(1 + erf(x-mu)/sqrt(2sigma^2)) - 请参阅 en.wikipedia.org/wiki/Normal_distribution
-
@wildplasser :因为这条定律对于我尝试建模的东西来说似乎相当不错。我承认它可能是任何其他的!
标签: postgresql random statistics gaussian