На PORTA.ru
ОГРОМНЫЙ выбор портативной техники:
MD-плееры CD-плееры MP3-плееры Кассетные плееры Диктофоны Радио Цифр. камеры Сотовые Дешевые ноутбуки |
||
Случайные числа Перем RandSeed;
Процедура Randomize() Перем h,m,s; ТекущееВремя(h,m,s); RandSeed=h*24+m*60+s; КонецПроцедуры Функция Random(n) Экспорт RandSeed=(13*RandSeed+13849)%65536; Возврат ((RandSeed%n)+1); КонецФункции Процедура Сформировать() Randomize(); Для нс=1 по 20 Цикл сообщить(Random(10)); КонецЦикла; КонецПроцедуры Или еще вариант: Ранд=_GetPerformanceCounter()%(х+1); //х – предел значения случайного числа от 0 до х; <сообщил Bozgalev> Вот, имхо, очень качественный алгоритм от комитета ANSI-C перевод на 1с мой :) работает правда медленнее чуть-чуть, чем те, что выше, зато последовательности выдает просто замечательные. _getPerformanceCounter() для совместимости с "1С:Совместимо" можно заменить на то, что выше. var randSeed export; // ************** function randomize() export randSeed=_getPerformanceCounter(); endFunction // ************** function random(n) export randSeed=randSeed*1103515245+12345; return ((randSeed/65536)%32768)%n+1; endFunction <сообщил avb> И ещё один алгоритм: Перем GlSeed; //------------------------------ //Алгоритм 133a (Алгоритмы выпуск №4 под редакцией Агеева. Вычислительный центр АН СССР. 1967) Функция СлучайноеЧисло(N) m35=34359738368; m36=68719476736; m37=137438953472; GlSeed=5*GlSeed; Если GlSeed>=m37 Тогда GlSeed=GlSeed-m37 КонецЕсли; Если GlSeed>=m36 Тогда GlSeed=GlSeed-m36 КонецЕсли; Если GlSeed>=m35 Тогда GlSeed=GlSeed-m35 КонецЕсли; Возврат Цел(GlSeed/m35*N)+1; КонецФункции <сообщил Soaron> -
Наверх -
|
В качестве благодарности за решение проблемы, щелкните здесь. Поддержите развитие сайта. Спасибо! |
Автор и разработчик: Кайгородов Андрей aka mszsuz. mszsuz@online.sinor.ru ICQ#33993114. Дата последнего обновления страницы: Friday 09.04.2004 16:52 |