![]() |
![]() |
![]() |
|
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+Цел(СлучайноеЧисло*Цел(Предел)); КонецЕсли; Возврат СлучайноеЧисло; КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |