不好意思,我发错了,以为这是自己的收藏夹。

原创 2003年04月30日 11:24:00

 

 

各位真不好意思,我以为这是个人收藏夹,把别人的贴字又发了一遍。实在不好意思,浪费大家的时间了。

 

 

 

 

CSDN - 文档中心 - Visual C++    

标题     高斯随机数发生程序    wangchinaking(收藏)
关键字     高斯、随机数

 
附送16bits,32bits均匀随机数发生程序

程序只产生均值为0,方差为1的随机数,要产生均值为E,方差为D的随机数,只要
随机数*D+E就可以了。

高斯随机数程序还是带参数的,参数是用来描述正态分布的一个浮点数表。在执行
程序时,先生成这个表(只做一次),而后就可以任意多次地执行高斯随机数产生
程序了。
使用C是为了保证通用性,如果有人觉得麻烦,可以用C++做个类,把这些东西都封
装进去。
另外,如果有人有兴趣,也可以把它修改成任意形式分布的连续随机数产生程序,
修改非常简单,这里就不提示了。

#include <memory.h>
#include <time.h>
#include <math.h>


#define GAUSS_TABLE_LENGTH 256

#include "random.h"

extern float Gauss_F[GAUSS_TABLE_LENGTH];
extern float Gauss_f[GAUSS_TABLE_LENGTH];
extern DWORD RandomKey,RandomKey32;

DWORD MCoef_32[2]={0xE7BD2160,0xDA3A2A9C};
WORD MCode_16[4]={0xD31C,0xC36C,0xD0A2,0xD228} ;
// two m sequence

#define INVALID_BLOCK 0xFFFF
#define BLOCK_SIZE 512

DWORD m_Seq_32(DWORD Key)
{
int i;
for(i=0;i<32;i++)
{
_asm
{
MOV EBX,Key;
SHL EBX,1
MOV EAX,Key;
MOV EDX,MCoef_32[0];
AND EAX,EDX; //select the bit for xor
MOV EDX,EAX;
SHR EAX,16;
XOR AX,DX;
XOR AH,AL; // because P only judge one byte
// so must XOR to judge the p of whole word
JP NEXT //jp equals the xor
INC EBX
NEXT: MOV Key,EBX;

}
}
return Key;
}

WORD RNG()
{
DWORD A,B;
_asm
{
_emit 0x0f
_emit 0x31
MOV A,EAX
MOV B,EDX
}

RandomKey = m_Seq_32(RandomKey^A^B);
return (WORD)RandomKey;
}

DWORD RNG32()
{
DWORD A,B;
_asm
{
_emit 0x0f
_emit 0x31
MOV A,EAX
MOV B,EDX
}

RandomKey32 = m_Seq_32(RandomKey32^A^B);
return RandomKey32;
}

void NormalTable(float *FTable, float * fTable,int Length)
/*
生成正态分布函数和正态分布概率密度函数表,表宽度为3倍方差
正态分布函数均值为0,方差为1
FTable: 正态分布函数表
fTable: 正态分布概率密度表
Length: 表的长度
*/

{
int i;
float h; /* 步长 */
float x,temp;
float C;

x=-3;
h= 6.0/Length/2;
FTable[0]=0;
C=1/sqrt(2*3.1415927);
/* 初始参数设置 */

fTable[0]= exp(-x*x/2)*C;
/* 起始点的概率密度 ,exp(-x*x/2)*C为概率密度函数 */

for(i=1;i<Length;i++)
{
x+=h;
temp = exp(-x*x/2)*C;
x+=h;
fTable[i] = exp(-x*x/2)*C;
/* 计算正态分布概率密度函数 */

FTable[i] = FTable[i-1]+(fTable[i-1]+4*temp+fTable[i])*h/3;
/* 辛普森数值积分公式计算正态分布函数 */
}
}

float NormalRNG(float * Gauss_F, int Length)
/*
生成均值为0,方差为1的高斯随机数
Gauss_F: 正态分布函数表,规格如上,可以由NormalTable函数生成
Length: 正态分布函数表的长度
返回值:均值为0,方差为1的高斯分布随机数
*/

{
float RandomNumber;
float temp,h;
int i;

h= 6.0/Length;
/* 正态分布表的步长 */


temp = (float)RNG()/65536;
/*产生一个[0,1)区间内均匀随机数 */

if(temp == 0)
return 0;

for(i=0;i<Length;i++)
{
if(temp<=Gauss_F[i]) /*计算随机数落入正态分布表的哪个区间 */
{
RandomNumber = (-3+h*i)+(temp-Gauss_F[i-1])/(Gauss_F[i]-Gauss_F[i-1])*h;
/* 进行线性差值 */
break;
}
}
return RandomNumber;
}

老婆对不起我错了我爱你

        当我心里很想你能高高兴兴的时候我就会来这里说说话,因为这里是我们的家,她见证了我们的开心快乐,坎坷不平,她见证了我们一步一步走出来的脚印,而这些脚印也象跟绳子样把我们越绑越紧,我们俩就...
  • ourhome
  • ourhome
  • 2007年05月10日 17:32
  • 1942

更改我的文档,收藏夹,桌面文件夹所在目录

HKEY_USERS/.DEFAULT/Software/Microsoft/Windows/CurrentVersion/Explorer/User Shell Folders 修改内容: 找到字符...
  • vipxiaotian
  • vipxiaotian
  • 2007年11月17日 20:45
  • 2353

我始终以为这是下限

原来,没有下限,才是下限。 协程幼儿园的事情,其实没多大——这年头压力大,老师也不是圣人。没有监督的情况下,任何人都可也变成禽兽。 然而。。。。。。。。某三原色的 ,才是真正的刷新...
  • mengweilil
  • mengweilil
  • 2017年11月24日 15:54
  • 43

修改“我的文档,收藏夹”等的默认位置

“我的文档”,“收藏夹”等的默认位置都在C:/Documents and settings/(用户名)/My Documents. 如果要重装系统后,“我的文档”,“收藏夹”里的内容都会不在,所以如果...
  • fisher_jiang
  • fisher_jiang
  • 2006年06月28日 12:59
  • 3881

别让“不好意思”毁掉你的人生

别能让不好意思,成为人生的绊脚石,缺的还是勇气,   1.乞丐不好意思要饭,结果饿死了;   2.商户不好意思要账,结果自己门店关了;  3.不好意思向心仪的人表白,结果她跟别人走了;  4...
  • Guofengpu
  • Guofengpu
  • 2016年05月26日 10:18
  • 343

我发错了一篇文章

 import java.awt.Frame; import java.awt.Panel; import java.awt.Label;  import java.awt.Component; im...
  • wodetongnian
  • wodetongnian
  • 2011年04月24日 21:37
  • 324

我以为我都不会再哭了

我以为我都不会再哭了,既然你都已经决定走,就潇潇洒洒的,谁都别再说挽留,何必让自己哭哭啼啼像个笑话 以为第一次…… 太多的我以为,抱着满满的幻想,以为会很幸福,却只是,我以为…… 我以为我们会在...
  • u013223565
  • u013223565
  • 2015年08月26日 14:38
  • 310

该下班时就下班,何必不好意思呢

台湾工作文化有一个很别扭的习惯, 我刚开始在台湾上班时, 有一次在电梯遇到隔壁公司的人, 我们聊起来之后她说:「妳就是那个12点整就出去的人!我佩服妳,老板还没有出去妳怎么敢先走」。 当时我不太懂她的...
  • imwj
  • imwj
  • 2005年03月23日 15:01
  • 1426

怎么在csdn中找到自己发布的帖子

1、在右侧上方找到社区,单击论坛,如下图: 2、进入论坛,左边树形连接:我的论坛-我发布的帖子,如下图:...
  • xunzaosiyecao
  • xunzaosiyecao
  • 2014年04月24日 10:07
  • 1966

我以为你懂的。懂得我是特别的

我以为你懂的。懂得我是特别的 — 我以为你懂的。懂得我是特别的 (1。 我不是个能言善变的人。我不是个明媚鲜艳的人。 我不会小鸟依人,也不会讨人欢心。 我不聪慧乖巧,也不知书答理。 ...
  • yarl5xxegfjh
  • yarl5xxegfjh
  • 2012年10月24日 11:13
  • 1135
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:不好意思,我发错了,以为这是自己的收藏夹。
举报原因:
原因补充:

(最多只允许输入30个字)