C#如何生成随机不重复的数字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#如何生成随机不重复的数字相关的知识,希望对你有一定的参考价值。

参考技术A private string RndomStr(int codeLength)

//组成字符串的字符集合 0-9数字、大小写字母
string chars = "0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,P,P,Q,R,S,T,U,V,W,X,Y,Z";
string[] charArray = chars.Split(new Char[] ',' );
string code = "";
int temp = -1;//记录上次随机数值,尽量避避免生产几个一样的随机数
Random rand = new Random();
//采用一个简单的算法以保证生成随机数的不同
for (int i = 1; i < codeLength + 1; i++)

if (temp != -1)

rand = new Random(i * temp * unchecked((int)DateTime.Now.Ticks));//初始化随机类

int t = rand.Next(61);
if (temp == t)

return RndomStr(codeLength);//如果获取的随机数重复,则递归调用

temp = t;//把本次产生的随机数记录起来
code += charArray[t];//随机数的位数加一

return code;

//生成随机数字方法
public class RandomHelper

/// <summary>
///生成制定位数的随机码(数字)
/// </summary>
/// <param name="length"></param>
/// <returns></returns>
public static string GenerateRandomCode(int length)

var result = new StringBuilder();
for (var i = 0; i < length; i++)

var r = new Random(Guid.NewGuid().GetHashCode());
result.Append(r.Next(0, 10));

return result.ToString();

如何在随机生成的数字中添加逗号 C# winforms [重复]

【中文标题】如何在随机生成的数字中添加逗号 C# winforms [重复]【英文标题】:How to add comma in random generated numbers C# winforms [duplicate] 【发布时间】:2015-11-28 18:29:18 【问题描述】:

目前我有这个代码:

private void button1_Click(object sender, EventArgs e)

    label1.Text = (new Random().NextDouble() * (new Random()).Next(10000)).ToString("0.00");
    //if (this.label1.Text.Length >= 7)
    //
    //    this.label1.Text = string.Format("0:0,0", label1.Text);
    //

1-10000 生成随机数。我想像这样插入逗号:9,677.89

【问题讨论】:

【参考方案1】:
String.Format("0:N2", new Random().NextDouble()*10000)

【讨论】:

无论何时使用此代码,请确保指定文化以获得所需的结果(除非您居住在美国)。 是否需要用更大的整数相乘,然后再除以双倍? NextDouble 已经返回 double 并且“如果数学运算中的一个操作数是非 Double 的数字类型,则在执行运算之前将其转换为 Double。运算的结果也是一个 Double 值。”msdn.microsoft.com/en-us/library/… Duplicate 列出了几个可以使用的变体 - ***.com/a/15668208/477420 如果您一直需要相同的分隔符 - 使用不变量,如果需要特定的一个 - 明确指定,或使用当前代码显示。

以上是关于C#如何生成随机不重复的数字的主要内容,如果未能解决你的问题,请参考以下文章

.net 下用C#产生一个永不重复10位随机数

C# Random 生成不重复随机数

C# Random 生成不重复随机数

C# 如何生成不重复的1-100随机数。

如何在随机生成的数字中添加逗号 C# winforms [重复]

如何确保不重复随机生成的数字? [重复]