|
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) Дык а я в чему? Либо используем любой, даже самый простой алгоритм псевдослучайных чисел, либо аппаратный генератор. Все эти крутые алгоритмы, на самом деле, практически никогда не нужны. А потому и обработку писать нет смысла.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |