Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
12 Дек 2017, 19:15
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Очень необычный Рандом (ГСЧ) - и загадочные баги  (Прочитано 1707 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ferrari314

  • ***
  • Сообщений: 174
  • РЕПУТАЦИЯ: 6
  • КПД: 3%
  • Главное - не есть желтый снег.
  • Регистрация: 2015-02-09
  • Сайт: 
Всем привет.
Вот такой стандартный рандом:
&НаСервере
Функция Рандом(НижняяГраница,ВерхняяГраница)
СлЧисло = новый ГенераторСлучайныхЧисел(ТекущаяУниверсальнаяДатаВМиллисекундах());
Возврат СлЧисло.СлучайноеЧисло(НижняяГраница,ВерхняяГраница);
КонецФункции

Должен: создать заданное количество рандомных лиц из массивов славарей.
БАГА: много дублирующих значений ПО СТРОКАМ:
Цитировать
Иванов Петр Юрьевич
Иванов Петр Юрьевич
Иванов Петр Юрьевич
Петрова Ольга Ивановна
Петрова Ольга Ивановна
Антонов Антон Юрьевич
Сидорова Наталья Андреевна
из 10 строк может совпадать (полностью) 3-5 и даже 7!!
то есть рандом срабатывает хреново, при том что на каждом шаге вызывается заного

Что пробовал: поставил рандом не на секунды а на милисекунды - результат не ясен.
Увеличил значения словарей в 2 раза (по 20 имен, фам и отч на МУЖ и по 20 на Ж (итого вариации = 20^6) - дубли не уменьшились. Ощущение, что рандом проходит слишком быстро.

У кого какие мысли?

вот код

Работает вот так:
Процедура СоздатьНаСервере()
ФизЛицо = Справочники.ФизЛица.СоздатьЭлемент();
Если Рандом(1,2) <> 1 Тогда
Физлицо.Имя = ИменаМ()[Рандом(0,19)];
Физлицо.Фамилия = ФамилииМ()[Рандом(0,19)];
Физлицо.Отчество = ОтчестваМ()[Рандом(0,19)];
Иначе
Физлицо.Имя = ИменаЖ()[Рандом(0,19)];
Физлицо.Фамилия = ФамилииЖ()[Рандом(0,19)];
Физлицо.Отчество = ОтчестваЖ()[Рандом(0,19)];
КонецЕсли;
Физлицо.Наименование = Физлицо.Фамилия+" "+ФизЛицо.Имя+" "+ФизЛицо.Отчество;
Физлицо.Записать();

Ну и вызов
&НаКлиенте
Процедура СоздатьФизлиц(Команда)
Для счетчик=1 По КоличествоФизлиц Цикл
СоздатьФизлицНаСервере();
КонецЦикла;
КонецПроцедуры


Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
то есть рандом срабатывает хреново, при том что на каждом шаге вызывается заного

а кто вам обещал что рандом будет выдавать каждый раз уникальное значение?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн ferrari314

  • ***
  • Сообщений: 174
  • РЕПУТАЦИЯ: 6
  • КПД: 3%
  • Главное - не есть желтый снег.
  • Регистрация: 2015-02-09
  • Сайт: 
Ну должно быть хотя бы более-менее разное. У меня на 10 сотрудников выходит такой ряд:
Цитировать
2,12,12,12,
2,10,10,10,
1,3,3,3,
2,14,14,14
2,14,14,14
2,14,14,14
Это вообще не рандом!!
результат рандома совпадает в блоках (3 вызова подряд(на ФИО) иногда и повторяется по 3-4 раза на сотрудников.
У меня ощущение что я что-то упустил.

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
а если без параметра?
т.е.
новый ГенераторСлучайныхЧисел();
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн ferrari314

  • ***
  • Сообщений: 174
  • РЕПУТАЦИЯ: 6
  • КПД: 3%
  • Главное - не есть желтый снег.
  • Регистрация: 2015-02-09
  • Сайт: 
тогда все еще хуже. совпадений становится много больше.
иванов АА, иванов АА, иванов АА, петров ББ, петров ББ, сидоров ВВ, сидоров ВВ, сидоров ВВ

Оффлайн Slin

  • Глобальный модератор
  • *****
  • Сообщений: 780
  • РЕПУТАЦИЯ: 247
  • КПД: 32%
  • Game over...
  • Регистрация: 2010-10-13
  • Сайт: 
  • Профессия: Программист 1С
Попробуйте создать ГСЧ только один раз, а в цикле вызывать только СлучайноеЧисло()
переписать, конечно, придётся слегка
skype: slin-dev


Теги:
 

ПОМОГИТЕ ОЧЕНЬ СРОЧНО!!!! ЗУП 8.2 "Перечисление НДФЛ в бюджет РФ"

Автор ZvezoРаздел Пользователям "1С - Предприятие 8"

Ответов: 21
Просмотров: 33425
Последний ответ 12 Окт 2012, 15:32
от Gunner
Состояние("текст сообщения"); - очень быстро пропадает.

Автор snoop82Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 5
Просмотров: 1946
Последний ответ 16 Июл 2015, 08:28
от cska-fanat-kz
При открытии конфигурации ошибка чтения памяти. Помогите пожалуйста! очень срочн

Автор MKozzlikРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 2560
Последний ответ 13 Дек 2011, 17:52
от aleksqqq
Как удалить записи регистра накопления по регистратору!!!ОЧЕНЬ СРОЧНО!!!!

Автор bunzuk1991Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 12309
Последний ответ 14 Мар 2012, 22:54
от sergejK74
Оборотно-сальдовая ведомость по 60-му или 62-му счету формируется очень медленно

Автор lkm2000Раздел Пользователям "1С - Предприятие 8"

Ответов: 0
Просмотров: 2858
Последний ответ 10 Июн 2013, 09:29
от lkm2000

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
168 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
55 Сообщений
alex0402
48 Сообщений
andron81_81
42 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 358
  • Точка Скрытых: 0
  • Точка Пользователей: 9
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal