|
Правильный генератор случайных чисел | ☑ | ||
|---|---|---|---|---|
|
0
PowerBoy
13.07.06
✎
11:51
|
Использовал генератор Волшебника.
Оказалось крайние числа диаппазона выпадают в двое реже остальных. Исправил вот так: В 8.0 для получения случайных чисел можно использовать встроенный генератор GUID. Вот пример простенькой функции: //только для целых чисел Функция ПолучитьСлучайноеЧисло(Мин,Макс) //вместо Randomize Для н = 1 По 100 Цикл Уник = Новый УникальныйИдентификатор; КонецЦикла; //генерируем GUID Уник = СокрЛП(Новый УникальныйИдентификатор); //оставляем только цифры Уник = СтрЗаменить(Уник,"-",""); Уник = СтрЗаменить(Уник,"a",""); Уник = СтрЗаменить(Уник,"b",""); Уник = СтрЗаменить(Уник,"c",""); Уник = СтрЗаменить(Уник,"d",""); Уник = СтрЗаменить(Уник,"e",""); Уник = СтрЗаменить(Уник,"f",""); //знаменатель должен иметь такое же количество нулей + 1 Знаменатель = 10; Для н = 2 По (СтрДлина(СтрЗаменить(Уник,Символы.НПП,""))) Цикл Знаменатель = Знаменатель * 10; КонецЦикла; Случ = Число(Уник) / Знаменатель; //здесь получается дробное случайное число от 0 до 1 //преобразуем его в случайное число из заданного интервала, округляем до целого //ЧислоИзИнтервала = Мин(Макс(Окр(Мин + (Макс-Мин)*Случ),Мин),Макс); // Делаем правильно вот так, т.к. по предыдущей формуле крайние значения выпадают в 2 раза реже. ЧислоИзИнтервала = Цел(0.5 + (Макс - Мин + 1) * Случ) + Мин - 1; Если ЧислоИзИнтервала = Мин - 1 Тогда ЧислоИзИнтервала = Макс; КонецЕсли; Возврат ЧислоИзИнтервала; КонецФункции |
|||
|
1
ТелепатБот
гуру
13.07.06
✎
11:51
|
||||
|
2
ZyXEL
13.07.06
✎
11:52
|
Где же Гений 1С..
|
|||
|
3
GROOVY
13.07.06
✎
12:16
|
Ниче! в 8.1 будет нормальный генератор!
|
|||
|
4
Advan
13.07.06
✎
12:19
|
НАкой в 1с генератор случайных чисел? типа суммы в отчеты подставлять случайные?
|
|||
|
5
lift
13.07.06
✎
12:21
|
А для чего ты использушь генератор случайных чисел?
|
|||
|
6
RomaH
naïve
13.07.06
✎
12:24
|
(4) прогнозирование, например можно забабахать
|
|||
|
7
Salvador Limones
13.07.06
✎
12:25
|
(6) Ага, точно, например планирование закупок. Чтобы каждый раз были разные данные. :-)
|
|||
|
8
RomaH
naïve
13.07.06
✎
13:02
|
(7) ты может не в курсе, что перед тем как спрогнозировать, надо нарисовать функцию на основе реальных данных
так вот, нарисовать функцию которая на 100% соответсвовала бы реальным данным мыне сможем, а вот если предположить что в реальных данных есть белый шум ... то все ОК мы такой мурой целый год в универе занимались преподы вроде как писали прогу для ... управляемых снарядов |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |