Генерация случайных чисел (random)

Еще один вариант генерации случайных чисел в 1с 7.7.

Можно использовать следующий вариант для создания случайных чисел (кто-то уже использовал этот алгоритм, но я его немного доработал):
Функция СлучайноеЧисло(ЧислоМин, ЧислоМакс)
 scr=СоздатьОбъект(«MSScriptControl.ScriptControl»);   
 scr.language=«javascript»;
 Возврат scr.eval(«Math.floor(Math.random()*(«+Строка(ЧислоМакс)+»-«+Строка(ЧислоМин)+»+1))+»+Строка(ЧислоМин));   
КонецФункции

а вот функция для генерации уникальной строки:

Функция УникальноеИмяФайла(ДлинаСтроки 
 Символы=«ABCDEFGHIJKLMNOPQRSTUVWXYZ»;
 Цифры=«1234567890»;             
 ИмяФайла=«»;
 Длина=0;
 ТипСтроки=0;
 Пока СтрДлина(ИмяФайла)<ДлинаСтроки Цикл
     ТипСимвола=СлучайноеЧисло(1,2);
  Если ТипСимвола=1 Тогда  
   Длина=СлучайноеЧисло(1, СтрДлина(Символы));
   ИмяФайла=ИмяФайла+Сред(Символы,Длина,1);    
  ИначеЕсли ТипСимвола=2 Тогда  
   Длина=СлучайноеЧисло(1, СтрДлина(Цифры));
   ИмяФайла=ИмяФайла+Сред(Цифры,Длина,1);   
  КонецЕсли;  
 КонецЦикла;
           
 Возврат ИмяФайла;
КонецФункции

8 Comments

  1. janber

    Я лично в качестве случайного числа брал секунды из ТекущееВремя()

    Следующее значение получалось, если предыдущее возвести в квадрат и вырезать из середки 2 цифры.

    Для практических целей (типа заполнить таблицу тестовыми данными) хватало.

    Reply
  2. TrinitronOTV
    Alex210 пишет:

    Я лично в качестве случайного числа брал секунды из ТекущееВремя()

    Следующее значение получалось, если предыдущее возвести в квадрат и вырезать из середки 2 цифры.

    Для практических целей (типа заполнить таблицу тестовыми данными) хватало.

    оригинальное решение…

    Reply
  3. Михаська

    Оригинально

    Reply
  4. GenTay

    Доброго времени суток! Очень хорошая идея. Особенно сплав случ.чисел и случ.строк!

    Reply
  5. cool.vlad4

    (4) А в чем оригинальность-то? а как вы думаете пароли формируют?

    Reply
  6. Abadonna

    На что только народ не пойдет, вместо того, чтобы ВК использовать

    Reply
  7. alex_gus

    Заюзал первый вариант, но дает только целые числа, а можно еще как то прилепить чтоб и дробная было?

    Reply
  8. Cooler

    (7) Конечно можно, надо только быть хоть чуть-чуть программистом, а не 1Сником.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *