Namespaces
Variants

std:: weibull_distribution

From cppreference.net
Definiert im 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 die Anforderungen eines RandomNumberDistribution .

Inhaltsverzeichnis

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.