| 
			
			 | 
		#1 | 
| 
			
			 Программатор 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Доброго времени суток, уважаемые дамы и господа!!! Есть проблема. При заполнении временной таблицы необходимо одно из полей заполнить случайным числом (не спрашивайте почиму - так надо). В аксапте входящим значением в Random является текущее время (вроде). Если в одну секунду заполняются несколько запеисей, то и значение соответственно равны. А так низяяя!!! 
		
		
		
		
		
		
		
	  Как быть??!!! Подскажите пожалуйста... Заранее благодарен.PHP код: 
	
			
	 | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: mazzy (5). | |
| 
			
			 | 
		#2 | 
| 
			
			 Axapta 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А WinAPI::createGUID(); Не пойдет? 
		
		
		
		
		
		
		
		
			Уникальность гарантируется. Правда это не число. ![]() И все же, расскажите плиз смысл этого. Ну очень любопытно. Последний раз редактировалось oip; 19.10.2006 в 11:46.  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: iCloud (2). | |
| 
			
			 | 
		#3 | 
| 
			
			 Программатор 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 1C 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Не знаю как в Аксапте пишется, вот код на одинэске: 
		
		
		
		
		
		
		
	Sc = CreateObject("MSScriptControl.ScriptControl"); Sc.Language = "VBscript"; Sc.ExecuteStatement("Randomize"); _Rnd = Sc.Eval("RND"); ;-)  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Axapta 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Что-то типа "00659fd6-0ea9-4897-b226-8b3c74b85d1b".  
		
		
		
		
		
		
		
	![]() Уникальнее не придумаешь. http://ru.wikipedia.org/wiki/GUID  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Задача этого модуля - заполнить таблицы случайными значениями (по заданным правилам и диапазонам) и протестировать скорость выполнения операций по заданным сценариям. То, что вам нужно, выполняет класс BMrandom.  | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Программатор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			В сводном планировании создаются  спланированные переносы. У каждого склада есть свой приоритет. Раздаем товар сначала складам у которых есть приоритеты (в зависимости от значения приоритета), а затем рэндомом генерим приоритеты тем складам у которых значение ноль. Вот для того чтобы времы от времени появлялся товар на этих складах (где приоритет ноль) и выставляю этот рэндом - некий такой виртуальный приоритет. Мож не совсем по 'научному' объяснил, но вот как то так... 
		
		
		
		
		
		
		
	 
		 | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 former champion 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от Sada
			 
 
			Раздаем товар сначала складам у которых есть приоритеты (в зависимости от значения приоритета), а затем рэндомом генерим приоритеты тем складам у которых значение ноль. Вот для того чтобы времы от времени появлялся товар на этих складах (где приоритет ноль) и выставляю этот рэндом - некий такой виртуальный приоритет 
		
	 
		
				__________________ 
		
		
		
		
	"Let's get ready to r-r-r-um-m-m-mble!!!" (с) M.Buffer  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Программатор 
		
			
	 | 
	
	|
| 
	
 | 
|
| За это сообщение автора поблагодарили: Bil Meshkoff (1). | |
| 
			
			 | 
		#10 | 
| 
			
			 Программатор 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 Программатор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Случилось чудо!!! Только метод new этого класса немного доработал... 
		
		
		
		
		
		
		
	PHP код: 
	
			
	 | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			О-о-о-о! В 4ке также. 
		
		
		
		
		
		
			
		
		
		
		
	Всю голову изломал - почему в отладчике данные случайные, а при нормальной работе много повторяющихся значений. Т.е. new надо делать один раз, а потом вызывать один экземпляр, или делать singleton... Спасибо.  | 
| 
	
 | 
| 
			
			 | 
		#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). | |
| 
			
			 | 
		#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)); } }  | 
| 
	
 | 
| 
			
			 | 
		#15 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			ivas, спасибо. 
		
		
		
		
		
		
			
		
		
		
		
	Ой, надо бы протестировать на производительность.  | 
| 
	
 | 
| 
			
			 | 
		#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). | |
| 
			
			 | 
		#17 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			спасибо. 
		
		
		
		
		
		
			
		
		
		
		
	Т.е. как и Аксаптовский, дотнетовский рандом лучше создавать один раз, а потом вызывать-вызывать-вызывать. еще бы анализ случайности и воспроизводимости...  | 
| 
	
 | 
| 
			
			 | 
		#18 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			еще бы анализ случайности и воспроизводимости...
		
	 
 | 
| 
	
 | 
| 
			
			 | 
		#19 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			воспроизводимость - способность генератора выдавать одинаковые последовательности при одинаковом значении seed 
		
		
		
		
		
		
			
		
		
		
		
	http://ru.wikipedia.org/wiki/%D0%93%...81%D0%B5%D0%BB http://ru.wikipedia.org/wiki/%D0%A2%...%D1%8B_DIEHARD  | 
| 
	
 | 
| 
			
			 | 
		#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 | |||
		
  |