|
Как написать свой Случайный генератор буквоцифр | ☑ | ||
---|---|---|---|---|
0
zladenuw
21.10.16
✎
16:13
|
Как написать свой Случайный генератор буквоцифр.
Только использовать внешние языки ? https://habrahabr.ru/post/197046/ |
|||
1
AlexYurg
21.10.16
✎
16:19
|
Использовать СлучайноеЧисло() в цикле
|
|||
2
zladenuw
21.10.16
✎
16:19
|
нашел такое.
function str_rand() { var result = ''; var words = '0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'; var max_position = words.length - 1; for( i = 0; i < 5; ++i ) { position = Math.floor ( Math.random() * max_position ); result = result + words.substring(position, position + 1); } return result; } Надо будет запихнуть в 1с. и посмотреть. как он действительно генерит рандомом |
|||
3
zladenuw
21.10.16
✎
16:20
|
(1) надо 3 буквы и 3 числа
|
|||
4
Lexey_
21.10.16
✎
16:20
|
(0) такой пойдет?
СтрЗаменить(Новый УникальныйИдентификатор, "-", "") |
|||
5
zladenuw
21.10.16
✎
16:20
|
(3) длина 6 символов.
|
|||
6
zladenuw
21.10.16
✎
16:20
|
(4) кстати. да. надо попробовать
|
|||
7
b_ru
21.10.16
✎
16:25
|
Функция СлучайнаяБуква()
Возврат Символ(СлучайноеЧисло(КодСимвола("а"), КодСимвола("я"))); КонецФункции |
|||
8
Boleev
21.10.16
✎
16:26
|
(0) в БСП есть стандартная функция
//////////////////////////////////////////////////////////////////////////////// // Процедуры и функции работы с паролем. // Создает новый пароль, соответствующий заданным правилам проверки сложности. // Для облегчения запоминания, пароль формируется из слогов (согласная-гласная). // // Параметры: // ПараметрыПароля - Структура - возвращается функций ПараметрыПароля. // ГСЧ - ГенераторСлучайныхЧисел - если уже используется. // - Неопределено - создать новый. // // Возвращаемое значение: // Строка - новый пароль. // Функция СоздатьПароль(ПараметрыПароля, ГСЧ = Неопределено) Экспорт |
|||
9
zladenuw
21.10.16
✎
16:32
|
(8) спасибо.
Поищу. Но интересно разобраться. (7) для букв все идеально с 10000 нет не одного повторения. Вот только надо раздробить на 3 буквы и 3 числа :) Но это уже легче. Спасибо |
|||
10
aka AMIGO
21.10.16
✎
16:33
|
#define RAND_MAX 32767
static unsigned long int next = 1; int rand(void) { next = next * 1103515245 + 12345; return (unsigned int)(next/65536) % RAND_MAX; } void srand(unsigned int seed) { next = seed; } взято с: https://ru.wikipedia.org/wiki/Линейный_конгруэнтный_метод и много других генераторов псевдослучайных чисел. |
|||
11
zladenuw
21.10.16
✎
16:39
|
(10) спасибо
|
|||
12
aka AMIGO
21.10.16
✎
16:42
|
В 1969 году я нашел-было несложный генератор, с не вырождающейся последовательностью в пределах моих потребностей..
Где-то лежит бумажка с алгоритмом.. Подробности сгладились, идея осталась: высекать из дробной части иррационального числа несколько цифр с любого места |
|||
13
zladenuw
21.10.16
✎
16:51
|
да еще суть в том. что нужно контролировать что бы было 3 буквы и 3 цифры. пока сделал вот так. показывает от 20 тысяч до совпадения.
К = 1000000; ГСЧ = Новый ГенераторСлучайныхЧисел; масс = Новый Массив; Для ы=1 По к Цикл Код = ""; Для п=1 По 6 Цикл Если БукваИлиЦифра(ГСЧ) Тогда Код = ?(ЗначениеЗаполнено(Код),Код,"")+СлучайнаяБуква(ГСЧ); Иначе Код = ?(ЗначениеЗаполнено(Код),Код,"")+СлучайноЧисло(ГСЧ); КонецЕсли; КонецЦикла; Если масс.Найти(Код) = Неопределено Тогда масс.Добавить(код); Иначе Сообщить(код); сообщить(ы); Прервать; КонецЕсли; КонецЦикла; Сообщить(ы); КонецПроцедуры Функция СлучайнаяБуква(ГСЧ) Возврат Символ(ГСЧ.СлучайноеЧисло(КодСимвола("a"), КодСимвола("z"))); КонецФункции Функция СлучайноЧисло(ГСЧ) Возврат ГСЧ.СлучайноеЧисло(0, 9); КонецФункции // () Функция БукваИлиЦифра(ГСЧ) Возврат ГСЧ.СлучайноеЧисло(0, 1); КонецФункции // () Коряво, может как то усложнить выбор числа или буквы. с учетом какой символ был перед этим |
|||
14
mistеr
21.10.16
✎
16:52
|
(0) Для какой цели? Надеюсь не для паролей или подобного?
|
|||
15
zladenuw
21.10.16
✎
16:52
|
(14) Неа. только коммерция :)
|
|||
16
H A D G E H O G s
21.10.16
✎
16:53
|
(14) А что не так?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |