Funkcja w cpp

0

Mam taką funkcję w Java:

Math.floor(Math.random()*1000)

I tu jest pytanie jak ją zastąpić w cpp (chodzi o random). Taki kod zawiesza mi program:

floor(rand()*1000)

Dzięki za odpowiedź ;)

1

Pomijając słabość rand(), co rozumiesz przez "zawiesza program"?

0

Wykonywanie nie chce się zakończyć. Bez tej funkcji obliczenia wykonują się kilka dziesiątych sekundy a jak ją odkoduje to program się nie kończy

2

W sumie to co robisz to technicznie UB. Spróbuj użyć uniform_int_distribution zamiast bawić się technologią sprzed pół wieku.

0

Pewnie głupie pytanie ale jak tego użyć?

2

No, było w podlinkowanym materiale.

thread_local std::mt19937 gen{std::random_device{}()};
 
template<typename T>
T random(T min, T max) {
    return std::uniform_int_distribution<T>{min, max}(gen);
}
0
kq napisał(a):

No, było w podlinkowanym materiale.

Sorry nie zauważyłem linka

0

A żeby zwracało liczby (double) z (0.0 ,1.0)?

0

uniform_real_distribution, również jest opisane.

0

Mam jeszcze jedno pytanie w jaki sposób nie wypisywać bardzo małych wyników (mam liczby typu double ale nie chcę tych z +/- liczba "e-015" )?

0
Mattii4211 napisał(a):

Mam jeszcze jedno pytanie w jaki sposób nie wypisywać bardzo małych wyników (mam liczby typu double ale nie chcę tych z +/- liczba "e-015" )?

Czy chodzi Ci o setprecision albo o notacje? Może ten link pomoże.

0

Dzięki mniej więcej o to chodziło :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1