我现在在vs 2005开发环境下用C#编写一个抽奖程序
请问如果我要随机抽取1到100之间的5个整数,我该如何利用随机函数random()去编写呢?
请问如果我要随机抽取1到100之间的5个整数,我该如何利用随机函数random()去编写呢?
解决方案 »
- aspx.cs代码重复利用
- 关于字符串参数传递问题
- 在使用自定义控件时,怎么老是在控件和它的容器之间有空格啊?
- 在winform中,动态的给DataBase,配置了config文件,可编译后更改config文件配置无效,有具体说明,在线等,!!
- c#环境下的程序相似度匹配问题
- 请教高手, .NET中有没有提供调节系统音量的控件啊?
- 未将对象的设置引用到对象的事例
- 初学者的diao丝问题,关于断点和命名空间
- “System.Web.UI.WebControls.DataGrid”并不包含“TestCommand”的定义
- C# 注册表,远程桌面,产生多个应用程序!控制..急..在线等待...
- 如何动态设置textbox
- itext!
/// 使用RNGCryptoServiceProvider 做种,可以在一秒内产生的随机数重复率非常
/// 的低,对于以往使用时间做种的方法是个升级
/// </summary>
/// <returns></returns>
public static int GetNewSeed()
{
byte[] rndBytes = new byte[4];
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
rng.GetBytes(rndBytes);
return BitConverter.ToInt32(rndBytes,0);
} /// <summary>
/// 取得指定范围内的随几数
/// </summary>
/// <param name="startNumber">下限数</param>
/// <param name="endNumber">上限数</param>
/// <returns>int</returns>
public static int GetRandomNumber(int startNumber, int endNumber)
{
Random objRandom = new Random(GetNewSeed());
int r = objRandom.Next(startNumber,endNumber);
return r;
}
List<int> list = new List<int>(5);
for (int i = 0; i < 5; i++)
{
int temp = random.Next(1, 35);
if (list.Contains(temp)) { --i; continue; }//回滚
else list.Add(temp);
}