Как повысить/понизить шанс генерации определенного символа?

При генерации определенного набора символов (цифры + буквы) большую часть, получаемой на выходе строки, занимают именно буквы. Хотел бы уточнить момент, как повлиять на шанс генерации определенного символа или целой последовательности?

Как генерирует сейчас: "FNL6O", "IU46W", "K7UMDNEV"


Ответы (1 шт):

Автор решения: Johannes Krauser III

Букв 26 штук, цифр всего 10. Шанс появления буквы в 2,6 раз выше. Один из вариантов - это сделать свой набор. Для примера: берёшь 2 набора букв и 5 наборов цифр и получаешь примерно одинаковую вероятность генерации букв и цифр.

string data = "ZYXWVUTSRQPONMLKJIHGFEDCBAZYXWVUTSRQPONMLKJIHGFEDCBA12345678901234567890123456789012345678901234567890";

Если идти более сложным путём, то можно искусственно выбирать позиции для цифр и записывать туда именно цифры, но это много геморроя, и не уверен, что такая точность вообще критична для вас. Ещё как вариант, сделать некий валидатор, который будет отправлять строку на перегенерацию, если цифр слишком мало.

→ Ссылка