问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C#产生的随机数,默认情况下,是[0,1]上的均匀分布吗?

发布网友 发布时间:2024-01-24 03:38

我来回答

4个回答

热心网友 时间:2024-01-24 06:46

//Random 有NextDouble()和Next()等多个方法,
//NextDouble()方法生成[0,1]上的随机数
//它不是绝对的均匀分布。

Random ran = new Random();
for(int i = 0 ;i<100;i++)
{
Console.WriteLine(ran.NextDouble());
}

热心网友 时间:2024-01-24 06:47

Random.Next generates a random number whose value ranges from zero to less than Int32.MaxValue. To generate a random number whose value ranges from zero to some other positive number, use the Random.Next(Int32) method overload. To generate a random number within a different range, use the Random.Next(Int32, Int32) method overload.

实现代码:
//seed:Gets the number of milliseconds elapsed since the system started.

public Random(int Seed)
{
this.SeedArray = new int[0x38];
int num2 = 0x9a4ec86 - Math.Abs(Seed);
this.SeedArray[0x37] = num2;
int num3 = 1;
for (int i = 1; i < 0x37; i++)
{
int index = (0x15 * i) % 0x37;
this.SeedArray[index] = num3;
num3 = num2 - num3;
if (num3 < 0)
{
num3 += 0x7fffffff;
}
num2 = this.SeedArray[index];
}
for (int j = 1; j < 5; j++)
{
for (int k = 1; k < 0x38; k++)
{
this.SeedArray[k] -= this.SeedArray[1 + ((k + 30) % 0x37)];
if (this.SeedArray[k] < 0)
{
this.SeedArray[k] += 0x7fffffff;
}
}
}
this.inext = 0;
this.inextp = 0x15;
Seed = 1;
}

public virtual int Next()
{
return this.InternalSample();
}

private int InternalSample()
{
int inext = this.inext;
int inextp = this.inextp;
if (++inext >= 0x38)
{
inext = 1;
}
if (++inextp >= 0x38)
{
inextp = 1;
}
int num = this.SeedArray[inext] - this.SeedArray[inextp];
if (num < 0)
{
num += 0x7fffffff;
}
this.SeedArray[inext] = num;
this.inext = inext;
this.inextp = inextp;
return num;
}

热心网友 时间:2024-01-24 06:47

//Random 有NextDouble()和Next()等多个方法,
//NextDouble()方法生成[0,1]上的随机数
//它不是绝对的均匀分布。

Random ran = new Random();
for(int i = 0 ;i<100;i++)
{
Console.WriteLine(ran.NextDouble());
}

热心网友 时间:2024-01-24 06:47

Random.Next generates a random number whose value ranges from zero to less than Int32.MaxValue. To generate a random number whose value ranges from zero to some other positive number, use the Random.Next(Int32) method overload. To generate a random number within a different range, use the Random.Next(Int32, Int32) method overload.

实现代码:
//seed:Gets the number of milliseconds elapsed since the system started.

public Random(int Seed)
{
this.SeedArray = new int[0x38];
int num2 = 0x9a4ec86 - Math.Abs(Seed);
this.SeedArray[0x37] = num2;
int num3 = 1;
for (int i = 1; i < 0x37; i++)
{
int index = (0x15 * i) % 0x37;
this.SeedArray[index] = num3;
num3 = num2 - num3;
if (num3 < 0)
{
num3 += 0x7fffffff;
}
num2 = this.SeedArray[index];
}
for (int j = 1; j < 5; j++)
{
for (int k = 1; k < 0x38; k++)
{
this.SeedArray[k] -= this.SeedArray[1 + ((k + 30) % 0x37)];
if (this.SeedArray[k] < 0)
{
this.SeedArray[k] += 0x7fffffff;
}
}
}
this.inext = 0;
this.inextp = 0x15;
Seed = 1;
}

public virtual int Next()
{
return this.InternalSample();
}

private int InternalSample()
{
int inext = this.inext;
int inextp = this.inextp;
if (++inext >= 0x38)
{
inext = 1;
}
if (++inextp >= 0x38)
{
inextp = 1;
}
int num = this.SeedArray[inext] - this.SeedArray[inextp];
if (num < 0)
{
num += 0x7fffffff;
}
this.SeedArray[inext] = num;
this.inext = inext;
this.inextp = inextp;
return num;
}

热心网友 时间:2024-01-24 06:48

NextInt可以在你限定的证书范围内分布

热心网友 时间:2024-01-24 06:48

产生的是0到1中间的随机数
比如 0.235421 这样的

热心网友 时间:2024-01-24 06:47

NextInt可以在你限定的证书范围内分布

热心网友 时间:2024-01-24 06:48

产生的是0到1中间的随机数
比如 0.235421 这样的
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
畅享好还是荣耀好 怎么向老师请教问题?? ...和是40.15较大数的小数点向左移动一位就等于较小的数,这两_百度知... 两个数的和是40.15,较大数的小数点向左移动一位就等于较小的数这两... 两个数的和是40.15,较大的数的小数点像向左移动一位就等于较小的数... 两个数的和是40.15,较大数的小数点向左移动一位等于较小的数 ...和是40.15较大数的小数点向左移动一位就等于较小的数这两个数分别... 怎么用手机查询农行信用卡余额? 朝阳公园附近有孩子可以托管的地方吗? 华泰证券怎么添加第二张银行卡 索尼RX100M6有防抖功能吗? 一个充电桩有多家公司同时 剪映该素材暂不支持导入怎么办? 描写制作姜糖的短篇作文 关于大学生活的英语短语 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 老舍是什么年代(不是40或50这些年代,而是春秋或战国那些年代) 谁帮我写一篇《……渐行渐近》作文,网上抄的不要 索尼相机RX10M4的摄影表现如何?知道的说下。 百度在日本的市场占有率现在是多少? 同一个手机号注册两个,新的刚注销,旧的怎么找回? 索尼RX10M4拍摄鸟类图片时效果如何? 求宿舍文化大赛宣传语? 单价0.29 3.96千克等于多少金融 索尼RX100M6防抖吗? 索尼RX100M6的防抖效果怎么样? 此次中软国际通过SA8000认证,认证的专家评审团队对中软国际什么措施给 ... 制作姜糖水的英语作文 压力管道施焊焊工必须是自有职工吗,可不可以外聘 孔雀蛾吃什么 12345()除了6还可以填什么 东莞市大朗镇地图佛西村怎么走,我在古镇!怎么去比较好,具体点 一年内怎么改第二次 一年内怎么改第二次 我们应该管土豪的儿子叫什么呢? 谁知道轩辕剑什么时候哪里播出,主演有谁? 我们身边有西门豹一样的人吗?(至少3个) 想打鸟,索尼RX10M4的对焦系统OK么? 玫瑰花和月季花同时沏茶喝有什么作用 ...运行时出现实时错误“6”,溢出,计算机二级VB题库里的综合题_百度知... 开分公司需要什么手续 美称俄得为波兰导弹事件负责,美国为何一口咬定是俄方干得? 大家觉得,NBA众多球星里。(现在)哪些球员更厉害些?进入前十名的排序... ...12345挡的速度大概是多少? 转速在2000左右换挡 我现在3挡跑40码,55... 一年内可以修改几次吗? 索尼RX100M6防抖效果如何? 没在一起,我追的太紧,然后吵架了,女生说我打扰她了,嫌我烦,让我别... 一个号码注册了两个 怎么找回第一个? 请翻译为英文。。。不可以纯用翻译机器 位于偏乡僻壤的“念湖”的由来... 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信...