求C#生成0-1不重复的随机数

geyufly 2009-06-29 10:48:52
一次返回一个随机数(符点型),要生成0-1不重复的随机数,或者说98%不重复吧,谢谢各位给个算法
...全文
219 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hu8hong9 2009-06-30
  • 打赏
  • 举报
回复
(double)1 / (double)(new System.Random()).Next(100, 100000)
用1除以一个随即整数就可以获得一个0-1之间的随即数了
CsToD 2009-06-30
  • 打赏
  • 举报
回复
因为你的方法是错误的,你是这样取的吧:
for(int i=0;i<100;i++)
{
Random random=new Random();
Console.WriteLine(random.NextDouble());
}
因为程序执行非常快,所以随机数产生的时间很多是相同的,所以结果就是一样的了

正确的方法是:
Random random=new Random();
for(int i=0;i<100;i++)
{
Console.WriteLine(random.NextDouble());
}
geyufly 2009-06-29
  • 打赏
  • 举报
回复
我直接用的random.NextDouble(),结果返回有很多重复的,一查才知道它是依据时间,我在同一秒内取出的话就好多重复了,所以请大家多多指教
SpeForce 2009-06-29
  • 打赏
  • 举报
回复
随机数 重复的几率很小吧,看你保留几位小数,位数越多应该重复几率越小。

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧