|
Вопрос к знатокам 1С-овского генератора случайных чисел. | ☑ | ||
---|---|---|---|---|
0
itlikbez
08.09.15
✎
20:38
|
"Генератор случайных чисел инициализируется временем работы операционной системы с момента старта."
Люблю 1С за это! В чем измеряется время, кто-нибудь знает? Гугл не знает (или знает, но не говорит). |
|||
5
Chameleon1980
08.09.15
✎
20:43
|
вопрос то в теме или в 0 посте?
|
|||
6
itlikbez
08.09.15
✎
20:48
|
(5) В 0 посте, конечно.
|
|||
7
itlikbez
08.09.15
✎
20:49
|
(1) Вопрос в том, какую кратную величину используют разработчики 1С.
|
|||
8
Chameleon1980
08.09.15
✎
20:50
|
cmd time
|
|||
9
Chameleon1980
08.09.15
✎
20:51
|
Есть помимо дат - позиция, например, документа.
вас что интересует? |
|||
10
itlikbez
08.09.15
✎
20:51
|
(8) Ссылка есть?
|
|||
11
Irbis
08.09.15
✎
20:52
|
это команда системы, возвращает текущее время, так кажется
|
|||
12
itlikbez
08.09.15
✎
20:53
|
(9) В чем разработчики измеряют время работы с момента старта. В годах, днях, часах, секундах, миллисекундах, тиках...
|
|||
13
mehfk
08.09.15
✎
20:57
|
(12) В попугаях, в которых как известно длинней.
|
|||
14
Zamestas
08.09.15
✎
21:33
|
(0) Время не существует.
|
|||
15
Chameleon1980
08.09.15
✎
21:37
|
Автор можно вопрос?
К чему Ваш вопрос? |
|||
16
itlikbez
08.09.15
✎
21:46
|
(15) Если время измеряется в годах, тогда ГСЧ будет почти всякий раз инициализироваться одним и тем же числом, если в миллисекундах, тогда почти всякий раз разным, если в секундах, то когда как.
Конкретно у меня есть приложение, которое будет инициализировать ГСЧ гарантировано чаще, чем раз в секунду. |
|||
17
Chameleon1980
08.09.15
✎
21:54
|
гарантировано чаще одинаково или что?
..в миллисекундах.. |
|||
18
Chameleon1980
08.09.15
✎
21:55
|
попробуйте вычесть одну дату (со временем) из другой и сообщить
или, например '08.09.2015' + 5 и сообщить в 1С (или где вам все ж нужно). Я бы сначала попробовал. |
|||
19
Chameleon1980
08.09.15
✎
21:56
|
в 1с в сек + понятия есть относительно других вещей
|
|||
20
Лефмихалыч
08.09.15
✎
23:45
|
(16) ты правда думаешь, что разработчики платформы такие простачки, что для инициализации рэндома используют что-то большее, чем секунды?
|
|||
21
itlikbez
08.09.15
✎
23:50
|
(20) Я думаю, что от них можно всего ожидать )))
Секунды, кстати, были бы ужасны. Я рассчитываю на миллисекунды и хотел бы найти информацию об этом. Но, видимо, придется определять экспериментальным порядком. |
|||
22
Lama12
09.09.15
✎
07:43
|
(21) А зачем каждый раз инициализировать? Для одного раза и секунды хватит.
|
|||
23
aka AMIGO
09.09.15
✎
08:22
|
||||
24
mistеr
09.09.15
✎
08:49
|
(16) А ты часто инициализируешь ГСЧ? Зачем?
|
|||
25
ДенисЧ
09.09.15
✎
08:50
|
(24) Он так часто инициализирует ГСЧ, что складывается ощущение, что он эмм.... мастурбирует...
|
|||
26
1Сергей
09.09.15
✎
08:52
|
при сведении баланса очень нужен ГСЧ
|
|||
27
Ненавижу 1С
гуру
09.09.15
✎
08:52
|
(0) какое отношение единица измерения времени имеет к генератору случайных чисел?
|
|||
28
H A D G E H O G s
09.09.15
✎
09:44
|
В миллисекундах, расслабьтесь. Ну если так не доверяете - инициируйте в миллисекундах ссами. Это можно с 8.2.19
|
|||
29
itlikbez
09.09.15
✎
09:53
|
(28) Спасибо. А ссылка есть?
|
|||
30
itlikbez
09.09.15
✎
09:54
|
Миллисекунда вобщем-то тоже довольно много.
|
|||
31
ДенисЧ
09.09.15
✎
09:55
|
(30) Ты дёргаешь ГСЧ чаще, чем раз в миллисекунду?
В 1с? Есть обоснованный повод для вызова Станиславского в ветку... |
|||
32
itlikbez
09.09.15
✎
09:57
|
(31) Что тебя смущает?
|
|||
33
ДенисЧ
09.09.15
✎
09:58
|
(32) Виртуальный Станиславский в моём подсознании и некоторый опыт работы в 1с.
|
|||
34
itlikbez
09.09.15
✎
10:00
|
(33) Тогда тебе надо поработать еще. Например, с большим количеством пользователей.
|
|||
35
ДенисЧ
09.09.15
✎
10:01
|
(34) А может, это тебе нужно расстаться с иллюзиями на реализацию реального времени в 1с?
|
|||
36
itlikbez
09.09.15
✎
10:02
|
(35) Мне не нужно реальное время, мне нужны случайные числа.
|
|||
37
Локи-13
09.09.15
✎
10:02
|
(36) тебе попались два одинаковых случайных числа? Оо
|
|||
38
MM
09.09.15
✎
10:07
|
Так генератор случайных чисел положено инициализировать, только один раз в начале работы, а потом получать очередное число по мере необходимости.
Скорее всего 1С использует стандартную С-библиотеку. По-умолчанию специализируясь тиками ОС. |
|||
39
itlikbez
09.09.15
✎
10:16
|
(38) А если "работа" начинается и заканчивается в пределах миллисекунды?
|
|||
40
MM
09.09.15
✎
10:19
|
(39) Человек с такой скоростью работать не может, а значит есть работа более высокого уровня, она и должна подготовить входные данные, например, на уровне сеанса. Или речь о внешних запросах к базе?
|
|||
41
itlikbez
09.09.15
✎
10:21
|
(40) Один не может. А тысяча?
|
|||
42
ДенисЧ
09.09.15
✎
10:21
|
(39) А тут уже вам на второй этаж. Раздел со сказками - там.
|
|||
43
Ненавижу 1С
гуру
09.09.15
✎
10:26
|
Интересно, что вы там такого генерируете в 1С?
|
|||
44
MM
09.09.15
✎
10:28
|
(41) Тысяча (пусть полдесятка) человек вошедшие в систему в течении ОДНОГО тика (~55 миллисекунд)? Тогда (42). В крайнем случае инициализируйтесть с помощью ТекущаяУниверсальнаяДатаВМиллисекундах() и НомерСеансаИнформационнойБазы() .
|
|||
45
Mirnin
09.09.15
✎
10:33
|
Видимо, компания занимается генерацией и сбытом случайных чисел в промышленных масштабах.
Автор, для уверенности можешь плюсовать к сгенерированному числу номер сеанса пользователя. |
|||
46
Локи-13
09.09.15
✎
10:37
|
Чем мне нравится 1С, как это тем, что можно заниматься автоматизацией бизнес-процессов не вдаваясь в технические подробности.
Автор, зачем тебе знать как работает ГСЧ? |
|||
47
itlikbez
09.09.15
✎
10:38
|
(44) (45) О! То что, нужно. Спасибо.
|
|||
48
itlikbez
09.09.15
✎
10:39
|
(46) Чтоб ГСЧ не превратился в ГПЧ (П-предсказуемых)
|
|||
49
Маратыч
09.09.15
✎
10:43
|
(48) Строго говоря, все существующие алгоритмы на ПК - псевдослучайные.
|
|||
50
Брегорьян
09.09.15
✎
10:44
|
раз уж тут все умные собрались, не подскажете, как выбрать случайную запись таблицы без считывания данных всей таблицы?
|
|||
51
ДенисЧ
09.09.15
✎
10:45
|
(50) из какой таблицы?
|
|||
52
Брегорьян
09.09.15
✎
10:46
|
(51) из таблицы СУБД. пофих
|
|||
53
Smallrat
09.09.15
✎
10:46
|
(48) вам нужно купить и подлкючить к 1С такую штуку:
http://qrbg.irb.hr/qrbg121small.jpg 100% рандомные числа, никакой предсказуемости |
|||
54
ДенисЧ
09.09.15
✎
10:47
|
(52) Таблицы субд обычно не пронумерованы. Так что бери первую
|
|||
55
Брегорьян
09.09.15
✎
10:48
|
(54) как-то слабо случайно получается
|
|||
56
itlikbez
09.09.15
✎
10:49
|
(49) Псевдо годится.
|
|||
57
MM
09.09.15
✎
10:50
|
(48) В таком случае надо выйти за пределы 1С и обратиться к криптографическому ГСЧ. Это можно сделать через .NET (пространство имён System.Security.Cryptography рекомендуется v8: v8: Использование сборок .NET в 1С 7.x и 8.x) или через СОМ.
(49) Алгоритмы да, но на современных процессорах есть встроенный аппаратный ГСЧ и библиотеки криптографии имеют к нему доступ. |
|||
58
Wirtuozzz
09.09.15
✎
10:51
|
(24) так ЗП считать проще.
|
|||
59
Lama12
09.09.15
✎
10:57
|
(53) Они запрещены в РФ.
|
|||
60
MM
09.09.15
✎
11:01
|
(59) можно ссылку на закон? Это не средство шифрования, если читать буквально.
|
|||
61
Lama12
09.09.15
✎
11:02
|
(60) Я не про средства шифрования. Это аппаратный ГСЧ.
|
|||
62
MM
09.09.15
✎
11:04
|
Вот и спрашиваю каким законом запрещены ГСЧ? Не путать с программными ГПСЧ (П - псевдо). Тем более что их в процессоры встраивают, хотя есть мнение, что в них есть лазейка для АНБ.
|
|||
63
Lama12
09.09.15
✎
11:30
|
(62) Хе... действительно либо информация устарела, либо была не действительной. Единственное что смог найти, так это то что криптостокйие аппаратные ГСЧ засекречены. Все коммерческие версии ломаются "на ура". Есть обязательное требование для автоматизированных лотерей получать сертификат на ГСЧ, но это не то. В процессорах СГЧ не естественный, а тот же самый ГПСЧ, просто в аппаратной реализации.
|
|||
64
MM
09.09.15
✎
11:43
|
(63) Две пары чисел по 256 бит, полученных из аппаратного источника энтропии...
https://ru.wikipedia.org/wiki/RdRand#.D0.90.D0.BB.D0.B3.D0.BE.D1.80.D0.B8.D1.82.D0.BC |
|||
65
Локи-13
09.09.15
✎
11:55
|
(48) зачем кому-то нужно предсказывать число?
перемножь два случайных числа, преврати в строку, возьми нужное количество символов из середины, преврати в число и никому об этом не рассказывай. |
|||
66
mikecool
09.09.15
✎
12:04
|
(4) (затянувшись) А есть ли время?
|
|||
67
itlikbez
09.09.15
✎
12:20
|
(65) Если два процесса инициализируют ГСЧ одновременно, получится два одинаковых числа.
|
|||
68
ДенисЧ
09.09.15
✎
12:21
|
(66) ТС утверждает, что есть...
|
|||
69
itlikbez
09.09.15
✎
12:24
|
(68) Я этого не утверждал.
|
|||
70
Брегорьян
09.09.15
✎
12:27
|
навеяло
? Я сказала, отвечай ? да или нет! На простой вопрос всегда можно ответить «да» или «нет», по-моему, это не трудно. ? Представь себе, трудно, ? вмешался Карлсон. ? Я сейчас задам тебе простой вопрос, и ты сама в этом убедишься. Вот, слушай! Ты перестала пить коньяк по утрам, отвечай ? да или нет? |
|||
71
Devourer
09.09.15
✎
12:41
|
Пфф. Года 2 назад нужно было применить генератор случайных чисел. Тоже столкнулся с проблемой получения одного и того же числа. В итоге, воспользовавшись СП, передавал в начальное число, на основании которого инициализируется генератор предыдущее сгенерированное число.
Примерно так: Перем ТекЧисло; Процедура НажатиеНаКнопку(Кнопка) Генератор = Новый ГенераторСлучайныхЧисел(Текчисло); ТекЧисло = ГенераторСлучайныхЧисел.СлучайноеЧисло(); КонецПроцедуры; ТекЧисло = Секунда(ТекущаяДата); |
|||
72
Принт
09.09.15
✎
13:37
|
(67) Есть вероятность работы с одинаковым состоянием ГСЧ даже для процессов запущенных в разное время. И что?
|
|||
73
itlikbez
09.09.15
✎
13:52
|
(72) Вероятность допустима.
|
|||
74
itlikbez
09.09.15
✎
13:52
|
(73) Закономерность нежелательна
|
|||
75
Принт
09.09.15
✎
13:53
|
(74) А какая вероятность с закономерностью одновременного старта процессов?
|
|||
76
itlikbez
09.09.15
✎
14:01
|
(75) 1
|
|||
77
ТолькоПросмотр
09.09.15
✎
14:02
|
Думается мне, ТС приделывает костыли к новоизобретенному велосипеду)
|
|||
78
Принт
09.09.15
✎
14:04
|
(76) даже если они по таймеру запускаются так не получится.
|
|||
79
Принт
09.09.15
✎
14:19
|
(77) "Менять длину параллельных сторон — вот и все, что требовалось. Так просто и так трудно! Дрожа, я попробовал. И когда это получилось, признаюсь, я сделался просто одержимым. Целыми днями и неделями я конструировал прямоугольники разного размера, разного вида, все правильные и все различные. Поистине я был рогом изобилия прямоугольников. То были потрясающие дни."
|
|||
80
Локи-13
09.09.15
✎
14:22
|
кстати, если "временем работы операционной системы с момента старта"
то имеется ввиду аптайм. а добиться того, чтобы аптайм двух систем был абсолютно одинаковым... ну не знаю... может проще получить два одинаковых уида, не? |
|||
81
itlikbez
09.09.15
✎
14:24
|
(80) Тут аптайм одной системы.
|
|||
82
Принт
09.09.15
✎
14:24
|
(80) Уиды у 1С скорее всего получаются на основе того же гсч.
|
|||
83
itlikbez
09.09.15
✎
14:25
|
(78) Когда пользователей много, все получается.
|
|||
84
Принт
09.09.15
✎
14:26
|
(83) миллиарды?
|
|||
85
Локи-13
09.09.15
✎
14:27
|
а в чем смысл этой темы?
|
|||
86
Бледно Золотистый
09.09.15
✎
14:27
|
(83) У тебя слишком много свободного времени. Твоя задача решается намного проще при желании.
|
|||
87
itlikbez
09.09.15
✎
14:41
|
(84) Зачем миллиарды? Одной сотни хватит.
|
|||
88
MM
09.09.15
✎
14:41
|
(0) В продолжение (57):
объект=Новый COMОбъект("NetObjectToIDispatch45"); Мас = объект.CreateArray("System.Byte", 100); ТипРнд= объект.ПолучитьТип("System.Security.Cryptography.RNGCryptoServiceProvider"); Активатор=объект.Activator; Рнд=Активатор.CreateInstance(ТипРнд); Рнд.GetBytes(Мас); Стр = ""; Для каждого Эл Из Мас Цикл Стр = Стр+" "+Эл; КонецЦикла; Сообщить(Стр); |
|||
89
Ranger_83
09.09.15
✎
14:50
|
(0) обязательно генерить в 1с?А сторонние получать нельзя?
|
|||
90
Ranger_83
09.09.15
✎
14:52
|
http://habrahabr.ru/post/145283/
Генерация случайных чисел с помощью Random.org Основная задача сайта — генерация случайных чисел с использованием атмосферных шумов |
|||
91
Garikk
09.09.15
✎
14:53
|
(90) <Основная задача сайта — генерация случайных чисел с использованием атмосферных шумов>
так и хочется сказать: "Честно честно!" |
|||
92
Принт
09.09.15
✎
14:53
|
(87) на (81) ?
|
|||
93
Ranger_83
09.09.15
✎
14:55
|
(85) я так понял ТС-у нужна совя крипотографическая истема, но могу и ошибаться
|
|||
94
itlikbez
09.09.15
✎
15:04
|
(92) (87) на (84)
|
|||
95
Принт
09.09.15
✎
15:06
|
(94) Одна сотня одновременно стартующих 1С на одной машине?
|
|||
96
itlikbez
09.09.15
✎
15:36
|
(95) Сотня одновременно обращающихся к серверу 1С.
|
|||
97
Принт
09.09.15
✎
15:39
|
(96) Во! И в чем проблема?
|
|||
98
Локи-13
09.09.15
✎
15:42
|
(97) тут всю тему не понятно в чем проблем, автор не признается
|
|||
99
Принт
09.09.15
✎
15:42
|
(98) Видно, какие-то фобии.
|
|||
100
vicof
09.09.15
✎
15:44
|
(100) Соточка
|
|||
101
Дык ё
09.09.15
✎
16:00
|
напомнило
int getRandomNumber() { return 4; // chosen by fair dice roll. // guaranteed to be random. } |
|||
102
Принт
11.09.15
✎
13:16
|
Короче, похоже микросекунды там.
|
|||
103
itlikbez
11.09.15
✎
13:23
|
(102) Проверил?
|
|||
104
Принт
11.09.15
✎
13:28
|
(103) Нашел кучу мест инициализации от времени и пока одно с инициализацией от таймера работы процессора. Последнее более соответствует докам.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |