【发布时间】:2011-10-26 16:43:22
【问题描述】:
我正在使用 C#,我需要生成一个随机的 10 位数字。到目前为止,我只是幸运地找到了指示最小最大值的示例。我将如何生成一个 10 位的随机数,它可以以 0 开头,(最初,我希望 random.Next(1000000000,9999999999) 但我怀疑这是我想要的)。
我的代码现在看起来像这样:
[WebMethod]
public string GenerateNumber()
{
Random random = new Random();
return random.Next(?);
}
**更新结果是这样的,
[WebMethod]
public string GenerateNumber()
{
Random random = new Random();
string r = "";
int i;
for (i = 1; i < 11; i++)
{
r += random.Next(0, 9).ToString();
}
return r;
}
【问题讨论】:
-
九个零后跟一个 1 对您有效吗?如果是这样,你不能只做一个随机数并用零填充吗?
-
谢谢,我发现这是一个有用的参考。我要指出,用 += 重新分配字符串可以正常工作,但效率低下。 StringBuilder 类可以在这里为您节省一些内存,尤其是如果有人将其应用于更大的字符串。
-
随机随机=新随机(); StringBuilder sb = new StringBuilder(); for (int i = 0; i
-
1) 你用这个号码做什么?有什么安全相关的吗?您当前创建的数字是非常可预测的。 2) 分布应该有多均匀?使用您当前的代码,只能达到 20% 的数字,其中一些数字比其他数字更有可能。
-
+1 更新 :) ,
random.Next(1000000000,9999999999)产生错误!!!