一、环境
.NET4.0 C#
二、引用
.NET下的System.Numerics.dll
三、实现代码
public static int get_randINT(int max)
{
int n = 0;
string g = Guid.NewGuid().ToString("N");
char[] c_g = g.ToArray();
BigInteger b=0, c=1;
for (int i = 0; i < c_g.Length; i++)
{
b += c_g[i];
c *= c_g[i] + 1;
}
b = b + c;
n = (int)(b % max);
return n;
}
四、说明
在for循环产生大量随机数时经常会碰见产生的随机数是相同的,网上大部分解决方式都是存储对比再排除重新产生,感觉效率不够。
随机数的目的就是唯一性,刚好GUID实现了唯一性这个特点,所以利用之。
本函数产生0到max-1的随机数。