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

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) А что не так?

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