Имя: Пароль:
LIFE
 
OFF: Как рассчитывается Random в программах и почему нету в 1с?
,
0 мистер игрек
 
22.02.13
12:57
Интересно узнать алгоритм. Вроде в компах все гладко, нету скачек, нету хаоса, везде все упорядочено.
Интересно, в 1с почему нету рандома? Или не осилили, или ненужая функция?
1 SeregaMW
 
22.02.13
13:00
(0) Алгоритмов мульен! Умножения числа на текущие время первое что пришло в голову!
2 1Сергей
 
22.02.13
13:00
ГенераторСлучайныхЧисел (RandomNumberGenerator)
СлучайноеЧисло (RandomNumber)
Синтаксис:

СлучайноеЧисло(<НижнийДиапазон>, <ВерхнийДиапазон>)
Параметры:

<НижнийДиапазон> (необязательный)

Тип: Число.
Нижний диапазон. Задается целым числом и не может быть меньше 0.
Значение по умолчанию: 0
<ВерхнийДиапазон> (необязательный)

Тип: Число.
Верхний диапазон. Задается целым числом и не может быть больше 4294967295 (2^32 - 1), а также меньше значения параметра <НижнийДиапазон>.
Значение по умолчанию: 4294967295
Возвращаемое значение:

Тип: Число.

Описание:

Возвращает случайное целое число в заданном диапазоне. Нижний диапазон не может быть меньше 0, а верхний диапазон не может быть больше 2^32 - 1.

Доступность:

Тонкий клиент, сервер, толстый клиент, внешнее соединение.
Пример:

ГСЧ = Новый ГенераторСлучайныхЧисел(255);
ГСЧ.СлучайноеЧисло(0, 10000);
3 Лефмихалыч
 
22.02.13
13:01
(0) есть в 1С, не свисти. Знаю одну контору, в которой алкогольные декларации сдаются благодаря ему
4 мистер игрек
 
22.02.13
13:02
(3) Блин. Извините поцоны, походу проспал :)
5 Морковка
 
22.02.13
13:02
(0) от физических параметров среды, например, считают, типа от температуры процессора
6 H A D G E H O G s
 
22.02.13
13:03
(3) Ээээ?
7 Лефмихалыч
 
22.02.13
13:03
(6) щито?
8 мистер игрек
 
22.02.13
13:08
(5) Допусти температура в интервале 1-10 градусов и берется целое число.
А може ли функция тогда вычислит рандом в диапазоне от 1 до 100 000, чтоб пока не переберет все цифры из этого множества и не разу не повторяется?
9 Запрос-мастер
 
22.02.13
13:12
видел подобную реализацию
функция РандомноеЧисло()
   возврат 4; //число получено броском игральной кости, тру рандом
КонецФункции
10 Лефмихалыч
 
22.02.13
13:15
(8) это не случайное число будет
11 Лефмихалыч
 
22.02.13
13:16
+(10) для этой задачи достаточно взять массич чисел от 1 100000 и отсортировать их любым рэндомом. Потом брать по очереди
12 sined2008
 
22.02.13
13:19
Я тоже знаю, и не одну))))
13 sined2008
 
22.02.13
13:20
(3)
14 D_Pavel
 
22.02.13
13:21
(8) Может
15 мистер игрек
 
22.02.13
13:22
(14) Довой алгоритм. Я проверю
16 Лефмихалыч
 
22.02.13
13:25
(15) см (11)
17 D_Pavel
 
22.02.13
13:25
(15) процедура генерации не повторяющихся случайных чисел:

Процедура Рандом()
   хре = (хре * Л + Й) % Ж;
   Возврат (хре / Ж);
КонецПроцедуры


Л, Й и Ж взаимно простые числа.
Генерируемые числа не повторяются Ж раз подряд.

Нужно изначально инициализировать переменную хре, например:
хре = 0;
18 D_Pavel
 
22.02.13
13:26
Например для периода 65536:

Процедура Рандом()
   хре = (хре * 25173 + 13849) % 65536;
   Возврат (хре / 65536);
КонецПроцедуры
19 rs_trade
 
22.02.13
13:27
(10) Так практически по любому алгоритму будет псевдослучайное число. Ибо после после определенного кол-во генераций последовательности начинают повторятся.
20 Морковка
 
22.02.13
13:28
(8) это же рандом, зачем к нему такие требования?
21 D_Pavel
 
22.02.13
13:29
(20) чтобы прослушать все песни и ни одна не проиграла два раза!!! Что не понятного
22 GANR
 
22.02.13
13:41
(0) На самом деле величины ПСЕВДОслучайны. Вот один из алгоритмов wiki:Генератор_Макларена_%E2%80%94_Марсальи. А вообще они подробно описаны здесь http://www.arhibook.ru/18282-imitacionnoe-modelirovanie.html . (2) В Pascal под DOS генератор СВ был фигней (период коротенький), 1С-не знаю.
23 GANR
 
22.02.13
13:45
(0)>Интересно, в 1с почему нету рандома.
Есть (2), но это явно слаборазвитая часть платформы. А зачем?
Если мне надо будет - сбацаю обработку по генерации СВ и зашью в нее один из крутейших в мире алгоритмов.
24 мистер игрек
 
22.02.13
13:47
(23) Лотерея
25 dmpl
 
22.02.13
13:50
(23) Крутейшие - это аппаратный генератор случайных чисел. А все алгоритмы - они лишь псевдослучайные.
26 GANR
 
22.02.13
14:21
(25) Периода СВ 10^300 достаточно.
27 Лефмихалыч
 
22.02.13
14:25
пля, да всё и так работает, зачем вы травите?
28 dmpl
 
22.02.13
14:30
(26) Ты реально не понимаешь разницы? По известной последовательности можно определить алгоритм, а определив алгоритм - все дальнейшие псевдослучайные числа.
29 Лефмихалыч
 
22.02.13
14:31
(28) занудство ведет к язве желудка, ты в курсе?
30 dmpl
 
22.02.13
14:37
(29) Дык а я в чему? Либо используем любой, даже самый простой алгоритм псевдослучайных чисел, либо аппаратный генератор. Все эти крутые алгоритмы, на самом деле, практически никогда не нужны. А потому и обработку писать нет смысла.