![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Что нибудь вместо Random [D6, Win95/98]
Sound © (2002-04-10 00:48:00)Проблема:Надо сгенирировать случайное число, но Random не подходит так как запуская каждый раз программу заново я получаю одну и ту же последовательность чисел, и при этом некоторые из них повторяются чаще... ЧТО ДЕЛАТЬ?
Poirot (2002-04-12 21:00:00) [1]Берём с полки книжечку господина Кнута (2 том - для непосвещённых) и создаём (скатываем быстрый) и приэтом с приличным периодом рандом... на http://www.lib.ruлежит но в TeX...
Yuriy (2002-04-12 18:41:00) [2]Есть у меня специальная компонента, привожу описание -
This aims to supply a Borland Delphi translation of Alan Miller"s Random Module for FORTRAN-90.
The following Random Number Generators:
- Normal (Gaussian)
- Gamma
- Chi-squared
- Exponential
- Weibull
- Beta
- t
- Multivariate Normal
- Generalized inverse Gaussian
- Binomial (2 different ones)
- Negative Binomial
- von Mises
- Cauchy
Если еще нужна - пиши на мыло - вышлю.
MBo (2002-04-11 06:57:00) [3]>Sound
такая последовательность будет, если вызываешь randomizize каждый раз перед random. Делай это 1 РАЗ -как madburro сказал
или, скажем, в FormCreate
madburro (2002-04-11 00:20:00) [4]Pishes v samom nizu
...
initialization
Randomize;
end.
Rabotaet stopudovo.
dymka (2002-04-10 20:58:00) [5]Делай свой алгоритм случайных чисел... бери за основу число миллисекунд и вперед:
1. Конгруэнтный метод - поищи в инете, должен быть.
2. Методы оперирование с дробной частью, типа
Xn+1 = Frac(Xn * 37 + 0.1234567), где Frac функция взятия дробной части. Поэсперементируй с числами где 37 и 0.1234567.
3. Методы опирающиеся на ошибки вычисления... Хотя возможно уже не актуальны...
Для каждой последовательности построй гистограмму, для оценки случайной последовательности... Можно рассчитать дисперсию...
Надеюсь тебе нужно равномерное распределение???
Sound (2002-04-10 20:51:00) [6]Ну латно, хотя кто знает посоветуйте что ещё... А то вдруг и енто не поможет.
Di_wind (2002-04-10 20:34:00) [7]есл неустравивает бери рандомайзь массив, а потом встряхивай его ещё. Берешь 2 случайных индекса в массиве(Randomize :>)и меняешь элементы с этими индексами местами.
DeMoN-777 (2002-04-10 20:28:00) [8]Да народ прав Randomize вот что надо юзать
вобщем SPeller © прав
Ну а если тебе не понятно что-то мыль я те исходники кину...
DeMoN-777 (2002-04-10 20:27:00) [9]Да народ прав Randomize вот что надо юзать
вобщем SPeller © прав
Я думаю вопрос закрыт =)
Anatoly Podgoretsky (2002-04-10 20:26:00) [10]Sound © (10.04.02 20:10)
Полностью случайная последовательность программными метода недостижима
Ты ни разу не привел свой код
Sound (2002-04-10 20:26:00) [11]Так я в принципе и делаю, но результата нет :(
SPeller (2002-04-10 20:21:00) [12]Randomize;
for i:=1 to n do
a[i]:=random(10);
Sound (2002-04-10 20:10:00) [13]Снова трабла, необходимогенерировать очень много случайных чисел за короткий промежуток времени (Скажем около 100 чисел) и они начинают повторяться:
2 2 2 2 2 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 4 4 4 4 4 4 4 4
Ну типа того, а необходима полностью случайная последовательнасть чисел.
SPeller (2002-04-10 08:00:00) [14]Randomize;
....
x:=random;
Sound (2002-04-10 01:42:00) [15]Ну уже получше спасибо :)
MBo (2002-04-10 01:34:00) [16]инициализирует генератор сл. чисел (исходя из времени)
Sound (2002-04-10 01:31:00) [17]А для чего он необходим (просвятите):
SPeller (2002-04-10 01:08:00) [18]И RANDOMIZE не помогает ?
Sound (2002-04-10 01:04:00) [19]Оригенальней некуда :) А побыстрее и по меньше че нить можно придумать?
AlexDeRus (2002-04-10 00:56:00) [20]zapishi vse chisla v fail i ot tuda sravnivai s random elsi chislo odno i to zhe to kruti random eshe raz i tak dalee. raboteat medlenno no verno