Namespaces
Variants

std::weibull_distribution

Von de.cppreference.net
 
 
 
 
 
Definiert in Header <random>
template< class RealType = double >
class weibull_distribution;
(seit C++11)

Die weibull_distribution erfüllt die Anforderungen einer RandomNumberDistribution und erzeugt Zufallszahlen gemäß der Weibull-Verteilung:

f(x;a,b) =
a
b
· ⎛
⎜
⎝
x
b
⎞
⎟
⎠
a-1
· exp⎛
⎜
⎝
-⎛
⎜
⎝
x
b
⎞
⎟
⎠
a
⎞
⎟
⎠

a ist der Formparameter und b der Skalenparameter.

std::weibull_distribution erfüllt RandomNumberDistribution.

Template-Parameter

RealType - Der vom Generator erzeugte Ergebnistyp. Das Verhalten ist undefiniert, wenn dies nicht einer der Typen float , double , oder long double ist.

Mitgliedertypen

Mitgliedertyp Definition
result_type (C++11) RealType
param_type (C++11) der Typ des Parametersatzes, siehe RandomNumberDistribution .

Memberfunktionen

erzeugt eine neue Verteilung
(öffentliche Member-Funktion)
(C++11)
setzt den internen Zustand der Verteilung zurück
(öffentliche Member-Funktion)
Erzeugung
(C++11)
erzeugt die nächste Zufallszahl in der Verteilung
(öffentliche Member-Funktion)
Eigenschaften
(C++11)
gibt die Verteilungsparameter zurück
(öffentliche Member-Funktion)
(C++11)
ruft das Verteilungsparameterobjekt ab oder setzt es
(öffentliche Member-Funktion)
(C++11)
gibt den minimal möglichen generierten Wert zurück
(öffentliche Member-Funktion)
(C++11)
gibt den maximal möglichen generierten Wert zurück
(öffentliche Member-Funktion)

Nicht-Member-Funktionen

(C++11) (C++11) (entfernt in C++20)
vergleicht zwei Verteilungs-Objekte
(Funktion)
führt Stream-Ein- und -Ausgabe für Pseudo-Zufallszahlenverteilung durch
(Funktions-Template)

Beispiel

#include <cmath>
#include <iomanip>
#include <iostream>
#include <map>
#include <random>
#include <string>
int main()
{
    std::random_device rd;
    std::mt19937 gen(rd());
    std::weibull_distribution<> d;
    std::map<int, int> hist;
    for (int n = 0; n != 10000; ++n)
        ++hist[std::round(d(gen))];
    std::cout << std::fixed << std::setprecision(1) << std::hex;
    for (auto [x, y] : hist)
        std::cout << x << ' ' << std::string(y / 200, '*') << '\n';
}

Mögliche Ausgabe:

0 *******************
1 *******************
2 ******
3 **
4
5
6
7
8

Externe Links

1. Weisstein, Eric W. "Weibull Distribution." Von MathWorld — Eine Wolfram-Webressource.
2. Weibull distribution — Aus Wikipedia.