⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 以前写仿真程序用到的产生随机数的.txt

📁 (1)满足均匀分布的[M,N]区间随机数
💻 TXT
字号:
以前写仿真程序用到的产生随机数的,可以参考一下.
其中rand_num函数中的from和to分别定义了你想产生随机数的范围.

int number_mm( void )
{
    int *piState;
    int iState1;
    int iState2;
    int iRand;
    piState = &rgi_state[2];
    iState1 = piState[-2];
    iState2 = piState[-1];
    iRand = ( piState[iState1] + piState[iState2] )& ( ( 1 << 30 ) - 1 );
    piState[iState1] = iRand;
    if ( ++iState1 == 55 )
            iState1 = 0;
    if ( ++iState2 == 55 )
            iState2 = 0;
    piState[-2] = iState1;
    piState[-1] = iState2;
    return iRand >> 6;
}

/*
* Generate a random number.
* the range of generated random number can be defined between 'from' and 'to'
*/
int rand_num( int from, int to )
{
    int power;
    int number;
    if ( ( to = to - from + 1 ) <= 1 )
            return from;
    for ( power = 2; power < to; power <<= 1 )
            ;
    while ( ( number = number_mm( ) & ( power - 1 ) ) >= to )
            ;
    return from + number;
}

/*
* this is the Mitchell-Moore algorithm from Knuth, Volume II, the Art of Computer Programming
*/
void init_rand_seed( )
{
    int *piState;
    int iState;
    piState = &rgi_state[2];
    piState[-2] = 55 - 55;
    piState[-1] = 55 - 24;
    piState[0] = ( (int) time( NULL ) ) & ( ( 1 << 30 ) - 1 );
    piState[1] = 1;
    for ( iState = 2; iState < 55; iState++ )
        {
                piState[iState] = ( piState[iState-1] + piState[iState-2] )& ( ( 1 << 30 ) - 1 );
        }

    return;
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -