Funkcja w cpp

M4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 221
0

Mam taką funkcję w Java:

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

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

Kopiuj
floor(rand()*1000)

Dzięki za odpowiedź ;)

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
1

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

M4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 221
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

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
2

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

M4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 221
0

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

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
2

No, było w podlinkowanym materiale.

Kopiuj
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);
}
M4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 221
0
kq napisał(a):

No, było w podlinkowanym materiale.

Sorry nie zauważyłem linka

M4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 221
0

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

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
0

uniform_real_distribution, również jest opisane.

M4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 221
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" )?

DI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5
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.

M4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 221
0

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.