RosettaCodeData/Task/Random-numbers/DuckDB/random-numbers.duckdb

15 lines
440 B
Plaintext

# The Box-Muller method
create or replace function rnv(mean, sd, u, v) as
(select ( sqrt(-2 * ln(u)) * cos(2 * pi() * v) * sd) + mean);
create or replace table t as
(with rows as (select random() as u, random() as v from unnest(range(0,1000)))
select rnv(0, 0.5, u, v) as rnv from rows);
from t limit 5;
select avg(rnv) as average,
stddev_samp(rnv) as 'sample stddev',
stddev_pop(rnv) as 'population stddev'
from t;