Нормальное распределение

 

Господа подскажите как переделать Ранд в нормально распределенный генератор . Кохонена погонять нужно . А то неделю в глубокой жо... отладке, туплю неимоверно .

И еще хуежник из меня еще хуже чем инженер .Если кому не в лом прикиньте палитру цветов от темного до светлого желательно в цвете, желательно в 16-ричном коде . Со своей стороны обещаю, как только закончу выложу коды в общий доступ.

 
ivandurak:

Господа подскажите как переделать Ранд в нормально распределенный генератор . Кохонена погонять нужно . А то неделю в глубокой жо... отладке, туплю неимоверно .

И еще хуежник из меня еще хуже чем инженер .Если кому не в лом прикиньте палитру цветов от темного до светлого желательно в цвете, желательно в 16-ричном коде . Со своей стороны обещаю, как только закончу выложу коды в общий доступ.

смени имидж иначе все и будет так продолжаться как все описывал..
 
ivandurak:

И еще хуежник из меня еще хуже чем инженер .Если кому не в лом прикиньте палитру цветов от темного до светлого желательно в цвете, желательно в 16-ричном коде . Со своей стороны обещаю, как только закончу выложу коды в общий доступ.

Какие промежуточные цвета, сколько цветов в результате?


А на чем коды?

 
ivandurak:

Господа подскажите как переделать Ранд в нормально распределенный генератор . Кохонена погонять нужно . А то неделю в глубокой жо... отладке, туплю неимоверно .

Ну, как вариант- генерируем массив нормально распределенной величины
и по ранду таскаем из него элементы, обнуляя, чтобы не использовать дважды один и тот же элемент.
 
forte928:
смени имидж иначе все и будет так продолжаться как все описывал..
PS: белке код не давать
 
ivandurak: Господа подскажите как переделать Ранд в нормально распределенный генератор .

Да вот такой скрипт:

#include <probability.mqh>  /// включаемый файл

double arr[ ];              /// массив с нормально распределенными величинами    

/// параметры нормального распределения 
extern double mathExpect = 0.0;
extern double sigma = 1.0;  

extern int N = 10000;             /// число генерируемых значений

int init( )
{
   MathSrand( GetTickCount( ) );
   ArrayResize( arr, N );
}//————————————————————————————————————————————————————————————————————————————————————


int start( )
{
   for( int i = 0; i < N; i ++ )
   {
      double stdUniform = ( MathRand( ) + 1. ) / 32769.; // равномерная на (0,1) (но никогда не равная 0 или 1)
      arr[ i ] = ndtri( stdUniform ) * sigma + mathExpect;      ///  нормальное       
   }

   int h = FileOpen( "normal.txt", FILE_CSV | FILE_WRITE, " " );   
   for( i = 0; i < N; i ++ )              FileWrite( h, arr[ i ] );
   FileClose( h );

   return( 0 );
}//————————————————————————————————————————————————————————————————————————————————————

Инклюдник Probability.mqh кидаешь в \include, а Probability.dll - в \libraries. Во втором, кстати, достаточно и других полезных функций.

Входные параметры - сигма и матожидание.

Это не самый быстрый вариант, но тоже неплохо. Есть другие способы, но они все опираются на первоначальную генерацию равномерно распределенной величины.

jartmailru: Ну, как вариант- генерируем массив нормально распределенной величины

и по ранду таскаем из него элементы, обнуляя, чтобы не использовать дважды один и тот же элемент.

Он наоборот просит: имеется рэнд из MQL4, а надо сделать нормально распределенную.

Файлы:
probability.zip  49 kb
 

Мат, все ПРОЩЕ !!!!

:)

Пусть великий С-4 раскажет. :)

Это ЧИСТАЯ математика.

 
Mathemat:

Да вот такой скрипт:

Инклюдник Probability.mqh кидаешь в \include, а Probability.dll - в \libraries. Во втором, кстати, достаточно и других полезных функций.

Это не самый быстрый вариант, но тоже неплохо. Есть другие способы, но они все опираются на первоначальную генерацию равномерно распределенной величины.
Премного благодарен .
 
S, ты об этом?
 
Mathemat:
S, ты об этом?

Нет!

Это все делается, ТОЛЬКО с целью получить очень "точное" нормальное распределение.

Но если не биться за проф точность, то все просто. Еще раз - пусть нафиг, С-4 раскажет, он же статьи пишет и других дураками обьявляет. Вот пусть и покажет как он на самом деле. :) знает.

 
Ну тогда какая-нибудь серия Бернулли с большим npq. Но так получается уже приблизительно нормальное.