ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Общие вопросы программирования (https://forum.antichat.xyz/forumdisplay.php?f=206)
-   -   Как генерировать рандомные значения (https://forum.antichat.xyz/showthread.php?t=1422130)

Michael_Komas 13.02.2022 17:44

Мне нужен генератор рандомных чисел и букв, чтобы получалось +- так: G31HDK, при этом, буквы и цифры стояли в разных местах, а может цифр вообще не быть. Почитал, нигде эту информацию не нашёл. Буквы смог сгенерировать через distr ('A', 'Z') , цифры через rand, а вот как их совместить и заменять - не понял.. Если кто-то знает, скажите пожалуйста.

resolveZ 13.02.2022 18:20

Цитата:

Сообщение от Michael_Komas

Почитал, нигде эту информацию не нашёл.

по первой ссылке в гугле

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

Цитата:

Сообщение от resolveZ

по первой ссылке в гугле

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="Dark_Knight"]

Это конечно хорошо, но чет оно выдает одни и те же значения)
Цитата:

Сообщение от Спойлер



Попробуй вот это. Мб тебе подойдет. Написал на отьебись, но выдает у меня на сайте выше всегда разную строку

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

Цитата:

Сообщение от Michael_Komas

Спасибо, рандомит - уже хорошо, не знаешь, как его в цикл загнать можно, чтобы раз n-ное количество раз генерировал?

Смотря все от задачи зависит. for пробуй. Я же не знаю, что ты конкретно хочешь сделать

Michael_Komas 18.02.2022 11:34

Цитата:

Сообщение от Dark_Knight

Смотря все от задачи зависит. for пробуй. Я же не знаю, что ты конкретно хочешь сделать

Окей, спасибо.


Время: 10:28