Просмотр полной версии : Как генерировать рандомные значения
Michael_Komas
13.02.2022, 17:44
Мне нужен генератор рандомных чисел и букв, чтобы получалось +- так: G31HDK, при этом, буквы и цифры стояли в разных местах, а может цифр вообще не быть. Почитал, нигде эту информацию не нашёл. Буквы смог сгенерировать через distr ('A', 'Z') , цифры через rand, а вот как их совместить и заменять - не понял.. Если кто-то знает, скажите пожалуйста.
resolveZ
13.02.2022, 18:20
Почитал, нигде эту информацию не нашёл.
по первой ссылке в гугле
C++:
[CODE]
std
::
string
random_string
(
size_t length
)
{
auto
randchar
=
[
]
(
)
->
char
{
const
char
chars
[
]
=
"0123456789"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz"
;
const
size_t max_index
=
(
sizeof
(
chars
)
-
1
)
;
return
chars
[
rand
(
)
%
max_index
]
;
}
;
std
::
string
str
(
length
,
0
)
;
std
::
generate_n
(
str
.
begin
(
)
,
length
,
randchar
)
;
return
str
;
}
int
main
(
)
{
std
::
cout
Dark_Knight
14.02.2022, 20:16
по первой ссылке в гугле
C++:
[CODE]
std
::
string
random_string
(
size_t length
)
{
auto
randchar
=
[
]
(
)
->
char
{
const
char
chars
[
]
=
"0123456789"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz"
;
const
size_t max_index
=
(
sizeof
(
chars
)
-
1
)
;
return
chars
[
rand
(
)
%
max_index
]
;
}
;
std
::
string
str
(
length
,
0
)
;
std
::
generate_n
(
str
.
begin
(
)
,
length
,
randchar
)
;
return
str
;
}
int
main
(
)
{
std
::
cout
https://forum.antichat.xyz/attachments/27975663/
[/COLOR]
Попробуй вот это. Мб тебе подойдет. Написал на отьебись, но выдает у меня на сайте выше всегда разную строку
C++:
[CODE]
#include
#include
#include
#include
using
namespace
std
;
std
::
string
random_string
(
size_t length
)
{
string chars
=
"0123456789"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz"
;
random_device device
;
mt19937
generator
(
device
(
)
)
;
string str
;
for
(
size_t i
=
0
;
i
distribution
(
0
,
chars
.
size
(
)
-
1
)
;
str
+=
chars
.
at
(
distribution
(
generator
)
)
;
}
return
str
;
}
int
main
(
)
{
std
::
cout
Michael_Komas
17.02.2022, 21:57
Это конечно хорошо, но чет оно выдает одни и те же значения)
[QUOTE="Спойлер"]
Попробуй вот это. Мб тебе подойдет. Написал на отьебись, но выдает у меня на сайте выше всегда разную строку
C++:
[CODE]
#include
#include
#include
#include
using
namespace
std
;
std
::
string
random_string
(
size_t length
)
{
string chars
=
"0123456789"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz"
;
random_device device
;
mt19937
generator
(
device
(
)
)
;
string str
;
for
(
size_t i
=
0
;
i
distribution
(
0
,
chars
.
size
(
)
-
1
)
;
str
+=
chars
.
at
(
distribution
(
generator
)
)
;
}
return
str
;
}
int
main
(
)
{
std
::
cout
Dark_Knight
17.02.2022, 22:38
Спасибо, рандомит - уже хорошо, не знаешь, как его в цикл загнать можно, чтобы раз n-ное количество раз генерировал?
Смотря все от задачи зависит. for пробуй. Я же не знаю, что ты конкретно хочешь сделать
Michael_Komas
18.02.2022, 11:34
Смотря все от задачи зависит. for пробуй. Я же не знаю, что ты конкретно хочешь сделать
Окей, спасибо.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot