Имя: Пароль:
1C
1C 7.7
v7: Помогите, пожалуйста, с генератором случайных чисел
0 s-pc
 
20.08.11
18:30
Откопал на просторах мисты вот такой вот код
===
Функция Ранд(Парам=0)
   Если Парам<>0 Тогда
       randomize =Парам;
   КонецЕсли;
   Если Число(randomize )=0 Тогда
       randomize =Число(СтрЗаменить(""+ТекущееВремя(),":",""));
       randomize =(16807*randomize )%2147483647;
   КонецЕсли;
   randomize =(16807*randomize )%2147483647;
   randomize =макс(randomize ,-randomize );
   Возврат(randomize /2147483647);
КонецФункции

Процедура Сформировать(Кол)
   Сообщить(Ранд());
КонецПроцедуры
===

Код абсолютно рабочий. Одна проблемка - НИ ФИГА я в нем не понял!!!
Подскажите, пожалуйста, что и куда мне нужно добавить (или где, что и на что исправить), чтобы он мне генерировал или (выдавал) целые числа от 1 до 9 включително? А то пока дробные числа выдает.
1 Rie
 
20.08.11
18:31
(0)
СлучайноеОт1До9 = Цел(Ранд()*10)+1;
2 andrewks
 
20.08.11
18:32
Цел(Ранд()*8)+1
3 Rie
 
20.08.11
18:34
(2) Да, так гораздо правильнее.
4 andrewks
 
20.08.11
18:34
не, Окр(Ранд()*8,0)+1
5 s-pc
 
20.08.11
18:37
Спасибо! Получилось! :-)
6 ЧеловекДуши
 
20.08.11
18:55
(0)Случайное число, основанное на временном интервале :)
7 s-pc
 
20.08.11
19:07
(6) Пофиг! Главное - работает! :-) Ну, прямо, как про того таксиста из анекдота - "Вам шашечки или ехать?" :-)
8 znh
 
20.08.11
19:08
RiK_SQL.dll
9 Rie
 
20.08.11
19:09
(6) Вызови первый раз с параметром - и будет счастье.
10 acsent
 
20.08.11
19:09
System.Random Next
11 andrewks
 
20.08.11
19:52
(6) генератор _псевдо_случайных чисел. генератора истинно случайных чисел пока не видел
12 ДенисЧ
 
20.08.11
19:54
(11) а я видел... Шкаф в 2 меня...
13 Rie
 
20.08.11
19:54
(11) Есть такие. Но - аппаратные.
14 acsent
 
20.08.11
20:11
Истинно случайных чисел не существует - это абстракция
15 GreyK
 
20.08.11
20:15
(0) Этого хватит?
Функция random(Длина=2)
   СлучайноеЧисло=((_getPerformanceCounter()*1103515245+12345)%2147483648)/2147483648;
   Возврат Цел(СлучайноеЧисло*Лев("100000000000000000000",Длина+1));
КонецФункции //random
16 andrewalexk
 
20.08.11
20:28
(0) :) 1275
17 Эльниньо
 
20.08.11
20:43
//_____________________________________________________________________________
function random(n) export
randSeed = _getPerformanceCounter() * 1103515245 + 12345;
return ((randSeed / 65536) % 32768) % n+1;
endFunction
18 andrewks
 
20.08.11
21:07
(16) незачёт. bound error
19 andrewks
 
20.08.11
21:08
(12) в реале?
20 Torquader
 
21.08.11
13:31
Генератор случайных чисел - это радиолампа белого шума с включённым на выход АЦП - небольшое устройство, используемое при генерации исходных данных для ключей в шифровании.
21 __Se24
 
22.08.11
11:00
Как варианта

Функция глСлучайноеЧисло(Знач Предел=1) Экспорт
   СЛЧ=СоздатьОбъект("rcbdyctl.setting");
   СлучайноеЧисло=0;
   Коэф=1;
   СтрСл=СЛЧ.CreatePassword;
   Для сч2=1 По СтрДлина(СтрСл) Цикл
       ССимв=Сред(СтрСл,сч2,1);
       КСимв=КодСимв(ССимв);
       ПослЦыфра=КСимв-(Цел(КСимв/10)*10);
       Коэф=Коэф/10;
       СлучайноеЧисло=СлучайноеЧисло+ПослЦыфра*Коэф;
   КонецЦикла;
   Если Предел>1 Тогда
       СлучайноеЧисло=1+Цел(СлучайноеЧисло*Цел(Предел));
   КонецЕсли;
   Возврат СлучайноеЧисло;
КонецФункции