|
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, 12:06 | #7 |
Программатор
|
|
|
03.06.2011, 14:50 | #8 |
Участник
|
Цитата:
Вопросик возник Есть класс BMText метод new там есть такая строка textBase = ' 0123456789abcdefghijklmnopqrstuvwxyzжшеABCDEFGHIJKLMNOPQRSTUVWXYZЖШЕ'; Не могу понять нафига там русские буквы ЖШЕ это может уже наши со временем дописали или так в стандарте? |
|
19.10.2006, 11:55 | #9 |
Программатор
|
В сводном планировании создаются спланированные переносы. У каждого склада есть свой приоритет. Раздаем товар сначала складам у которых есть приоритеты (в зависимости от значения приоритета), а затем рэндомом генерим приоритеты тем складам у которых значение ноль. Вот для того чтобы времы от времени появлялся товар на этих складах (где приоритет ноль) и выставляю этот рэндом - некий такой виртуальный приоритет. Мож не совсем по 'научному' объяснил, но вот как то так...
|
|
19.10.2006, 12:02 | #10 |
former champion
|
Цитата:
Сообщение от Sada
Раздаем товар сначала складам у которых есть приоритеты (в зависимости от значения приоритета), а затем рэндомом генерим приоритеты тем складам у которых значение ноль. Вот для того чтобы времы от времени появлялся товар на этих складах (где приоритет ноль) и выставляю этот рэндом - некий такой виртуальный приоритет
__________________
"Let's get ready to r-r-r-um-m-m-mble!!!" (с) M.Buffer |
|
19.10.2006, 12:04 | #11 |
Программатор
|
|
|
|
За это сообщение автора поблагодарили: Bil Meshkoff (1). |
19.10.2006, 12:40 | #12 |
Программатор
|
Случилось чудо!!! Только метод new этого класса немного доработал...
PHP код:
|
|
03.05.2008, 22:16 | #13 |
Участник
|
О-о-о-о! В 4ке также.
Всю голову изломал - почему в отладчике данные случайные, а при нормальной работе много повторяющихся значений. Т.е. new надо делать один раз, а потом вызывать один экземпляр, или делать singleton... Спасибо. |
|
05.05.2008, 13:06 | #14 |
Участник
|
можно в каждой итерации написать
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 | #15 |
Участник
|
Если 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 | #16 |
Участник
|
ivas, спасибо.
Ой, надо бы протестировать на производительность. |
|
06.05.2008, 12:48 | #17 |
Участник
|
Цитата:
Ой, надо бы протестировать на производительность.
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 | #18 |
Участник
|
спасибо.
Т.е. как и Аксаптовский, дотнетовский рандом лучше создавать один раз, а потом вызывать-вызывать-вызывать. еще бы анализ случайности и воспроизводимости... |
|
22.05.2008, 02:58 | #19 |
Участник
|
Цитата:
Сообщение от epetrov
Результаты тестирования System.Random против RandomGenerate
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 Такты } Текст ошибки Цитата:
Error Сообщение (03:06:33) Сбой запроса на разрешение типа "InteropPermission".
(S)\Classes\InteropPermission\demand (S)\Classes\CLRObject\new (S)\Classes\Random_RNR\new - line 4 (S)\Classes\Random_RNR\construct - line 3 *****************несколько классов************* (S)\Classes\MenuFunction\runServer Error Сообщение (03:06:33) Объект "CLRObject" не может быть создан |
|
06.05.2008, 13:13 | #20 |
Участник
|
Цитата:
еще бы анализ случайности и воспроизводимости...
|
|
Теги |
random, документация, случайное число |
|
Похожие темы | ||||
Тема | Ответов | |||
Ruslan Goncharov: Stereogram in AX | 0 | |||
Программирование и перенос Layer-а на другую апликацию, выдает random-ошибки .. | 10 | |||
random() ? | 2 |
|