![]() |
|
v8: Случайное число в диапазоне и с шагом? | ☑ | ||
---|---|---|---|---|
0
axell
17.01.14
✎
16:41
|
ГЕН = Новый ГенераторСлучайныхЧисел();
ЧислоА = Ген.СлучайноеЧисло(0,8); МассивЧисел = Новый Массив; МассивЧисел.Добавить(60); МассивЧисел.Добавить(65); МассивЧисел.Добавить(70); МассивЧисел.Добавить(75); МассивЧисел.Добавить(80); МассивЧисел.Добавить(85); МассивЧисел.Добавить(90); МассивЧисел.Добавить(95); МассивЧисел.Добавить(100); Возврат(МассивЧисел[ЧислоА]); Ребята всем привет стоит задача получения числа в диапазоне от 60 до 100 с шагом 5. При обращении в цикле к данной функции в отладчике каждый раз получается разное число а в режиме предприятия если без отладчика всегда одинаковое. Может быть еще кто то делал что то подобное? |
|||
1
zladenuw
17.01.14
✎
16:44
|
а где вызываешь ? код покажи вес
|
|||
2
zladenuw
17.01.14
✎
16:46
|
(0) у нас был прикол. если вызываешь его в функции и возвращаешь значение то оно всегда одинаковое. и симптомы как у тебя. пришлось делать ее глобальной в модуле обработки. тогда проблемы исчезли
|
|||
3
Волшебник
модератор
17.01.14
✎
16:46
|
гсч = Новый ГенераторСлучайныхЧисел(ТекущаяУниверсальнаяДатаВМиллисекундах());
|
|||
4
Asmody
17.01.14
✎
16:48
|
какой кошмар! дарю:
ГЕН = Новый ГенераторСлучайныхЧисел(ТекущаяУниверсальнаяДатаВМиллисекундах()); Возврат Ген.СлучайноеЧисло(0,8)*5+60; |
|||
5
axell
17.01.14
✎
16:51
|
(3)Почти помогло
60 60 60 70 70 70 70 70 70 65 На 10 записей вот так сгенерировал |
|||
6
axell
17.01.14
✎
16:53
|
(4)Виктор по твоему коду вот что получилось
70 70 70 70 70 70 70 70 70 70 |
|||
7
Волшебник
модератор
17.01.14
✎
16:55
|
(5) Слишком быстро вызываешь. Делай паузу между вызовами, чтобы миллисекунды поменялись.
Кстати, можешь ещё записать белый шум в файл и брать оттуда числа для инициализации ГСЧ |
|||
8
axell
17.01.14
✎
16:58
|
(7)Станислав а как паузу сделать??? Про быстрый вызов понял когда ты показал код с ТекущаяУниверсальнаяДатаВМиллисекундах() и понял что когда отладчиком смотришь время дольше длиться.
|
|||
9
Волшебник
модератор
17.01.14
✎
16:59
|
(8) Пустым циклом можно. Не используй уже использованные миллисекунды.
|
|||
10
Asmody
17.01.14
✎
17:02
|
не нужно каждый раз заново создавать генератор
|
|||
11
Волшебник
модератор
17.01.14
✎
17:03
|
(10)+ Да, достаточно создать ГСЧ один раз до начала работы цикла, а потом получать из него последовательность случ.чисел.
Вместо миллисекунд ещё можно сгенерить GUID средствами ОС и взять из него только цифры, которые передать в конструктор ГенераторСлучайныхЧисел. |
|||
12
acsent
17.01.14
✎
17:06
|
(11) гуид можно и средствами 1с генерировать
|
|||
13
acsent
17.01.14
✎
17:07
|
(11) последовательность всегда будет одинакова
|
|||
14
axell
17.01.14
✎
17:37
|
Ребята всем спасибо!
|
|||
15
Волшебник
модератор
17.01.14
✎
17:38
|
||||
16
Волшебник
модератор
17.01.14
✎
17:55
|
(13)+ Да, но при каждом старте миллисекунды скорее всего будут разными, так что все числа будут достаточно случайными
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |