std::cauchy_distribution
De cppreference.com
![]() |
Esta página se ha traducido por ordenador/computador/computadora de la versión en inglés de la Wiki usando Google Translate.
La traducción puede contener errores y palabras aparatosas/incorrectas. Planea sobre el texto para ver la versión original. Puedes ayudar a corregir los errores y mejorar la traducción. Para instrucciones haz clic aquí. |
Definido en el archivo de encabezado <random>
|
||
template< class RealType = double > class cauchy_distribution; |
(desde C++11) | |
Produce números aleatorios siguiendo una distribución de Cauchy (también llamada distribución de Lorentz):
Original:
Produces random numbers according to a Cauchy distribution (also called Lorentz distribution):
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
- f(x; a,b) = ⎛
⎜
⎝bπ ⎡
⎢
⎣1 + ⎛
⎜
⎝
⎞x - a b
⎟
⎠2
⎤
⎥
⎦⎞
⎟
⎠-1
[editar] Tipos de miembros
Miembro de tipo
Original: Member type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
Definition |
result_type
|
RealType |
param_type
|
el tipo del conjunto de parámetros, sin especificar
Original: the type of the parameter set, unspecified The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
[editar] Las funciones miembro
construye nueva distribución Original: constructs new distribution The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro pública) | |
restablece el estado interno de la distribución Original: resets the internal state of the distribution The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro pública) | |
Original: Generation The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. | |
genera el siguiente número aleatorio en la distribución (función miembro pública) | |
Original: Characteristics The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. | |
returns the a distribution parameter (Location parameter) (función miembro pública) | |
returns the b distribution parameter (Scale parameter) (función miembro pública) | |
obtiene o establece el objeto de parámetro de distribución Original: gets or sets the distribution parameter object The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro pública) | |
devuelve el valor mínimo potencialmente generado Original: returns the minimum potentially generated value The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro pública) | |
devuelve el valor máximo potencialmente generado Original: returns the maximum potentially generated value The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro pública) |
[editar] Terceros funciones
compara dos objetos de distribución (función) | |
realiza flujo de entrada y salida en la distribución de números pseudo-aleatorios (función) |
[editar] Ejemplo
Ejecuta este código
#include <algorithm> #include <cmath> #include <iomanip> #include <iostream> #include <map> #include <random> #include <vector> template<int Height = 5, int BarWidth = 1, int Padding = 1, int Offset = 0, class Seq> void draw_vbars(Seq&& s, const bool DrawMinMax = true) { static_assert(0 < Height and 0 < BarWidth and 0 <= Padding and 0 <= Offset); auto cout_n = [](auto&& v, int n = 1) { while (n-- > 0) std::cout << v; }; const auto [min, max] = std::minmax_element(std::cbegin(s), std::cend(s)); std::vector<std::div_t> qr; for (typedef decltype(*std::cbegin(s)) V; V e : s) qr.push_back(std::div(std::lerp(V(0), 8 * Height, (e - *min) / (*max - *min)), 8)); for (auto h{Height}; h-- > 0; cout_n('\n')) { cout_n(' ', Offset); for (auto dv : qr) { const auto q{dv.quot}, r{dv.rem}; unsigned char d[]{0xe2, 0x96, 0x88, 0}; // Full Block: '█' q < h ? d[0] = ' ', d[1] = 0 : q == h ? d[2] -= (7 - r) : 0; cout_n(d, BarWidth), cout_n(' ', Padding); } if (DrawMinMax && Height > 1) Height - 1 == h ? std::cout << "┬ " << *max: h ? std::cout << "│ " : std::cout << "┴ " << *min; } } int main() { std::random_device rd{}; std::mt19937 gen{rd()}; auto cauchy = [&gen](const float x0, const float 𝛾) { std::cauchy_distribution<float> d{ x0 /* a */, 𝛾 /* b */}; const int norm = 1'00'00; const float cutoff = 0.005f; std::map<int, int> hist{}; for (int n=0; n!=norm; ++n) ++hist[std::round(d(gen))]; std::vector<float> bars; std::vector<int> indices; for (auto const& [n, p] : hist) { if (float x = p * (1.0/norm); cutoff < x) { bars.push_back(x); indices.push_back(n); } } std::cout << "x₀ = " << x0 << ", 𝛾 = " << 𝛾 << ":\n"; draw_vbars<4,3>(bars); for (int n : indices) { std::cout << "" << std::setw(2) << n << " "; } std::cout << "\n\n"; }; cauchy(/* x₀ = */ -2.0f, /* 𝛾 = */ 0.50f); cauchy(/* x₀ = */ +0.0f, /* 𝛾 = */ 1.25f); }
Posible salida:
x₀ = -2, 𝛾 = 0.5: ███ ┬ 0.5006 ███ │ ▂▂▂ ███ ▁▁▁ │ ▁▁▁ ▁▁▁ ▁▁▁ ▃▃▃ ███ ███ ███ ▂▂▂ ▁▁▁ ▁▁▁ ▁▁▁ ┴ 0.0076 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 x₀ = 0, 𝛾 = 1.25: ███ ┬ 0.2539 ▅▅▅ ███ ▃▃▃ │ ▁▁▁ ███ ███ ███ ▁▁▁ │ ▁▁▁ ▁▁▁ ▁▁▁ ▁▁▁ ▃▃▃ ▅▅▅ ███ ███ ███ ███ ███ ▅▅▅ ▃▃▃ ▂▂▂ ▁▁▁ ▁▁▁ ▁▁▁ ┴ 0.0058 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 9
[editar] Enlaces externos
Weisstein, Eric W. "Cauchy Distribution." De MathWorld - Un recurso del Web Wolfram .
Original:
Weisstein, Eric W. "Cauchy Distribution." From MathWorld--A Wolfram Web Resource.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Cauchy Distribution. De Wikipedia .
Original:
Cauchy Distribution. From Wikipedia.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.