Pular para o conteúdo

Estatísticas (std::stats)

Nesta página

std::stats fornece funções estatísticas sobre arrays numéricos — desde médias e medianas até desvio padrão, percentis e regressão linear. Todas as operações são computações puras sobre dados em memória e rodam diretamente no sandbox.


Tendências centrais

stats.mean, stats.median e stats.mode calculam as três medidas de tendência central. stats.min, stats.max e stats.sum completam o conjunto de utilitários básicos sobre uma sequência.

Média, mediana, moda, min, max e soma de um array de amostras.

01-mean-median.zolo
Playground
// Feature: stats.mean / stats.median / stats.mode — central tendencies

// When to use: data analysis, performance metrics, monitoring.


use std::stats

let sample = [10, 20, 30, 40, 50]

// arithmetic mean.

print(stats.mean(sample))  // expected: 30


// median (middle value once sorted).

print(stats.median(sample))  // expected: 30


// mode (most frequent value).

let bimodal = [1, 2, 2, 3, 3, 3, 4]
print(stats.mode(bimodal))  // expected: 3


// min, max, sum — basic utilities.

print(stats.min(sample))  // expected: 10

print(stats.max(sample))  // expected: 50

print(stats.sum(sample))  // expected: 150


Dispersão, percentis e correlação

Para séries de latências ou métricas de monitoramento, stats.variance e stats.stddev medem a dispersão; stats.percentile(arr, p) calcula o p-ésimo percentil (útil para p95/p99). stats.correlation retorna o coeficiente de Pearson entre dois vetores, e stats.linear_regression ajusta uma reta y = slope * x + intercept.

Variância, desvio padrão, p95, correlação e regressão linear simples.

02-variance-stddev.zolo
Playground
// Feature: stats.variance / stats.stddev / stats.percentile / correlation

// When to use: measure dispersion, deviation-based alerts, correlations.


use std::stats

let latencies = [120, 130, 125, 140, 110, 135, 128, 122]

// variance (mean of the squared deviations).

print(stats.variance(latencies))  // expected: float ~80


// standard deviation = sqrt(variance).

let sd = stats.stddev(latencies)
print(sd > 0)  // expected: true


// percentile(arr, p) — p in [0, 100].

print(stats.percentile(latencies, 50))  // expected: ~127 (median)

print(stats.percentile(latencies, 95))  // expected: p95 ~140


// Pearson correlation between two series (-1.0 .. 1.0).

let xs = [1, 2, 3, 4, 5]
let ys = [2, 4, 6, 8, 10]
let r = stats.correlation(xs, ys)
print(r)  // expected: 1.0 (perfectly correlated)


// Simple linear regression -> { slope, intercept }.

let lr = stats.linear_regression(xs, ys)
print(lr.slope)  // expected: 2.0

print(lr.intercept)  // expected: 0.0

Desafio

Carregue uma lista de tempos de resposta de uma API e emita um alerta via std::log.warn se o p95 ultrapassar 200 ms. Combine std::stats e std::log.

Buscar no Zolo

9 resultados

enespt-br