Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Как написать свой Случайный генератор буквоцифр

Как написать свой Случайный генератор буквоцифр
Я
   zladenuw
 
21.10.16 - 16:13
Как написать свой Случайный генератор буквоцифр.

Только использовать внешние языки ?
https://habrahabr.ru/post/197046/
 
 
   AlexYurg
 
1 - 21.10.16 - 16:19
Использовать СлучайноеЧисло() в цикле
   zladenuw
 
2 - 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с. и посмотреть. как он действительно генерит рандомом
   zladenuw
 
3 - 21.10.16 - 16:20
(1) надо 3 буквы и 3 числа
   Lexey_
 
4 - 21.10.16 - 16:20
(0) такой пойдет?
СтрЗаменить(Новый УникальныйИдентификатор, "-", "")
   zladenuw
 
5 - 21.10.16 - 16:20
(3) длина 6 символов.
   zladenuw
 
6 - 21.10.16 - 16:20
(4) кстати. да. надо попробовать
   b_ru
 
7 - 21.10.16 - 16:25
Функция СлучайнаяБуква()
  Возврат Символ(СлучайноеЧисло(КодСимвола("а"), КодСимвола("я")));
КонецФункции
   Boleev
 
8 - 21.10.16 - 16:26
(0) в БСП есть стандартная функция
////////////////////////////////////////////////////////////////////////////////

// Процедуры и функции работы с паролем.

// Создает новый пароль, соответствующий заданным правилам проверки сложности.

// Для облегчения запоминания, пароль формируется из слогов (согласная-гласная).
//

// Параметры:
//  ПараметрыПароля - Структура - возвращается функций ПараметрыПароля.

//  ГСЧ             - ГенераторСлучайныхЧисел - если уже используется.
//                  - Неопределено - создать новый.

//
// Возвращаемое значение:

//  Строка - новый пароль.
//

Функция СоздатьПароль(ПараметрыПароля, ГСЧ = Неопределено) Экспорт
   zladenuw
 
9 - 21.10.16 - 16:32
(8) спасибо.
Поищу.

Но интересно разобраться.

(7)  для букв все идеально с 10000 нет не одного повторения. Вот только надо раздробить на 3 буквы и 3 числа :) Но это уже легче.

Спасибо
   aka AMIGO
 
10 - 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/Линейный_конгруэнтный_метод

и много других генераторов псевдослучайных чисел.
 
 Рекламное место пустует
   zladenuw
 
11 - 21.10.16 - 16:39
(10) спасибо
   aka AMIGO
 
12 - 21.10.16 - 16:42
В 1969 году я нашел-было несложный генератор, с не вырождающейся последовательностью в пределах моих потребностей..
Где-то лежит бумажка с алгоритмом..

Подробности сгладились, идея осталась: высекать из дробной части иррационального числа несколько цифр с любого места
   zladenuw
 
13 - 21.10.16 - 16:51
да еще суть в том. что нужно контролировать что бы было 3 буквы и 3 цифры. пока сделал вот так. показывает от 20 тысяч до совпадения.
    К = 1000000;
    ГСЧ =     Новый  ГенераторСлучайныхЧисел;
    масс = Новый Массив;
    Для ы=1 По к Цикл
        Код = "";
        Для п=1 По 6 Цикл
            
            Если БукваИлиЦифра(ГСЧ) Тогда
               Код = ?(ЗначениеЗаполнено(Код),Код,"")+СлучайнаяБуква(ГСЧ);
            Иначе    
               Код = ?(ЗначениеЗаполнено(Код),Код,"")+СлучайноЧисло(ГСЧ);
            КонецЕсли; 
                        
        КонецЦикла; 
         
        Если масс.Найти(Код) = Неопределено Тогда
            масс.Добавить(код);
        Иначе    
            Сообщить(код);
            сообщить(ы);
            Прервать;
        КонецЕсли; 
    КонецЦикла; 
    Сообщить(ы);
КонецПроцедуры


Функция СлучайнаяБуква(ГСЧ)
    
    Возврат Символ(ГСЧ.СлучайноеЧисло(КодСимвола("a"), КодСимвола("z")));
    
КонецФункции

Функция СлучайноЧисло(ГСЧ)

    Возврат ГСЧ.СлучайноеЧисло(0, 9);

КонецФункции// ()


Функция БукваИлиЦифра(ГСЧ)

     Возврат ГСЧ.СлучайноеЧисло(0, 1);

КонецФункции// ()


Коряво, может как то усложнить выбор числа или буквы. с учетом какой символ был перед этим
   mistеr
 
14 - 21.10.16 - 16:52
(0) Для какой цели? Надеюсь не для паролей или подобного?
   zladenuw
 
15 - 21.10.16 - 16:52
(14) Неа. только коммерция :)
   H A D G E H O G s
 
16 - 21.10.16 - 16:53
(14) А что не так?

Список тем форума
Рекламное место пустует  Рекламное место пустует
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует