19.10.2006, 11:41 | #1 |
Программатор
|
Random!!!!
Доброго времени суток, уважаемые дамы и господа!!! Есть проблема. При заполнении временной таблицы необходимо одно из полей заполнить случайным числом (не спрашивайте почиму - так надо). В аксапте входящим значением в Random является текущее время (вроде). Если в одну секунду заполняются несколько запеисей, то и значение соответственно равны. А так низяяя!!! Как быть??!!! Подскажите пожалуйста... Заранее благодарен.
PHP код:
|
|
|
За это сообщение автора поблагодарили: mazzy (5). |
19.10.2006, 11:42 | #2 |
Axapta
|
А WinAPI::createGUID(); Не пойдет?
Уникальность гарантируется. Правда это не число. И все же, расскажите плиз смысл этого. Ну очень любопытно. Последний раз редактировалось oip; 19.10.2006 в 11:46. |
|
|
За это сообщение автора поблагодарили: iCloud (2). |
19.10.2006, 11:49 | #3 |
Программатор
|
|
|
19.10.2006, 11:50 | #4 |
1C
|
Не знаю как в Аксапте пишется, вот код на одинэске:
Sc = CreateObject("MSScriptControl.ScriptControl"); Sc.Language = "VBscript"; Sc.ExecuteStatement("Randomize"); _Rnd = Sc.Eval("RND"); ;-) |
|
19.10.2006, 11:51 | #5 |
Axapta
|
Что-то типа "00659fd6-0ea9-4897-b226-8b3c74b85d1b".
Уникальнее не придумаешь. http://ru.wikipedia.org/wiki/GUID |
|
19.10.2006, 11:54 | #6 |
Участник
|
Цитата:
Задача этого модуля - заполнить таблицы случайными значениями (по заданным правилам и диапазонам) и протестировать скорость выполнения операций по заданным сценариям. То, что вам нужно, выполняет класс BMrandom. |
|
19.10.2006, 11:55 | #7 |
Программатор
|
В сводном планировании создаются спланированные переносы. У каждого склада есть свой приоритет. Раздаем товар сначала складам у которых есть приоритеты (в зависимости от значения приоритета), а затем рэндомом генерим приоритеты тем складам у которых значение ноль. Вот для того чтобы времы от времени появлялся товар на этих складах (где приоритет ноль) и выставляю этот рэндом - некий такой виртуальный приоритет. Мож не совсем по 'научному' объяснил, но вот как то так...
|
|
19.10.2006, 12:02 | #8 |
former champion
|
Цитата:
Сообщение от Sada
Раздаем товар сначала складам у которых есть приоритеты (в зависимости от значения приоритета), а затем рэндомом генерим приоритеты тем складам у которых значение ноль. Вот для того чтобы времы от времени появлялся товар на этих складах (где приоритет ноль) и выставляю этот рэндом - некий такой виртуальный приоритет
__________________
"Let's get ready to r-r-r-um-m-m-mble!!!" (с) M.Buffer |
|
19.10.2006, 12:04 | #9 |
Программатор
|
|
|
|
За это сообщение автора поблагодарили: Bil Meshkoff (1). |
19.10.2006, 12:06 | #10 |
Программатор
|
|
|
19.10.2006, 12:40 | #11 |
Программатор
|
Случилось чудо!!! Только метод new этого класса немного доработал...
PHP код:
|
|
03.05.2008, 22:16 | #12 |
Участник
|
О-о-о-о! В 4ке также.
Всю голову изломал - почему в отладчике данные случайные, а при нормальной работе много повторяющихся значений. Т.е. new надо делать один раз, а потом вызывать один экземпляр, или делать singleton... Спасибо. |
|
05.05.2008, 13:06 | #13 |
Участник
|
можно в каждой итерации написать
random.parmSeed(WinApi::getTickCount()); WinApi::getTickCount() гдето 50-100 раз в секунду меняется
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy Последний раз редактировалось ivas; 05.05.2008 в 13:27. |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
05.05.2008, 14:15 | #14 |
Участник
|
Если 4-ка, то можно использовать .Net класс System.Random
X++: static void Job501(Args _args) { System.Random random; Int i; Int r; ; random = new System.Random(); for (i=1; i<=10; i++) { r = random.Next(0, 10); info(int2Str(r)); } } |
|
05.05.2008, 18:00 | #15 |
Участник
|
ivas, спасибо.
Ой, надо бы протестировать на производительность. |
|
06.05.2008, 12:48 | #16 |
Участник
|
Цитата:
Ой, надо бы протестировать на производительность.
X++: static void Job502(Args _args) { System.Random randomNet; RandomGenerate randomAx; Int r; ; randomNet = new System.Random(); // 343112 Такты randomAx = new RandomGenerate(); // 43827 Такты r = randomNet.Next(0, 10); // 119623 Такты r = randomAx.randomInt(0, 10); // 279566 Такты } Последний раз редактировалось epetrov; 06.05.2008 в 12:55. |
|
|
За это сообщение автора поблагодарили: mazzy (5). |
06.05.2008, 13:00 | #17 |
Участник
|
спасибо.
Т.е. как и Аксаптовский, дотнетовский рандом лучше создавать один раз, а потом вызывать-вызывать-вызывать. еще бы анализ случайности и воспроизводимости... |
|
06.05.2008, 13:13 | #18 |
Участник
|
Цитата:
еще бы анализ случайности и воспроизводимости...
|
|
06.05.2008, 13:36 | #19 |
Участник
|
воспроизводимость - способность генератора выдавать одинаковые последовательности при одинаковом значении seed
http://ru.wikipedia.org/wiki/%D0%93%...81%D0%B5%D0%BB http://ru.wikipedia.org/wiki/%D0%A2%...%D1%8B_DIEHARD |
|
06.05.2008, 14:05 | #20 |
Участник
|
понятно.
Пока анализ случайности. Значения от 1 до 10. 1000 генераций Распределение System.Random: 1 - 11,70 %, 2 - 8,70 %, 3 - 9,80 %, 4 - 11,00 %, 5 - 9,80 %, 6 - 10,20 %, 7 - 10,40 %, 8 - 10,10 %, 9 - 9,60 %, 10 - 8,70 % Распределение RandomGenerate: 1 - 11,40 %, 2 - 9,30 %, 3 - 12,60 %, 4 - 8,10 %, 5 - 10,50 %, 6 - 10,20 %, 7 - 9,10 %, 8 - 9,60 %, 9 - 9,90 %, 10 - 9,30 % 10000 генераций Распределение System.Random: 1 - 10,49 %, 2 - 9,58 %, 3 - 9,99 %, 4 - 10,42 %, 5 - 9,78 %, 6 - 10,08 %, 7 - 9,30 %, 8 - 10,14 %, 9 - 10,22 %, 10 - 10,00 % Распределение RandomGenerate: 1 - 9,66 %, 2 - 10,75 %, 3 - 9,66 %, 4 - 10,12 %, 5 - 10,01 %, 6 - 10,22 %, 7 - 9,77 %, 8 - 9,97 %, 9 - 10,20 %, 10 - 9,64 % 100000 генераций Распределение System.Random: 1 - 9,86 %, 2 - 10,22 %, 3 - 10,04 %, 4 - 9,93 %, 5 - 10,00 %, 6 - 10,01 %, 7 - 10,03 %, 8 - 9,96 %, 9 - 10,01 %, 10 - 9,94 % Распределение RandomGenerate: 1 - 10,18 %, 2 - 10,12 %, 3 - 9,97 %, 4 - 10,03 %, 5 - 9,95 %, 6 - 9,98 %, 7 - 9,96 %, 8 - 9,74 %, 9 - 10,03 %, 10 - 10,05 % 1000000 генераций Распределение System.Random: 1 - 9,96 %, 2 - 10,04 %, 3 - 9,96 %, 4 - 10,02 %, 5 - 10,00 %, 6 - 9,94 %, 7 - 10,01 %, 8 - 10,01 %, 9 - 10,05 %, 10 - 10,01 % Распределение RandomGenerate: 1 - 10,03 %, 2 - 10,01 %, 3 - 10,03 %, 4 - 10,03 %, 5 - 10,03 %, 6 - 10,01 %, 7 - 9,93 %, 8 - 10,02 %, 9 - 9,96 %, 10 - 9,95 % Последний раз редактировалось epetrov; 06.05.2008 в 14:20. |
|
Теги |
random, документация, случайное число |
|
Похожие темы | ||||
Тема | Ответов | |||
Ruslan Goncharov: Stereogram in AX | 0 | |||
Программирование и перенос Layer-а на другую апликацию, выдает random-ошибки .. | 10 | |||
random() ? | 2 |
|